diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..182c265 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +DATABASE_URL=postgres://torii:torii@localhost:5432/torii diff --git a/Cargo.lock b/Cargo.lock index 0de3593..eec3089 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -901,6 +901,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + [[package]] name = "fallible-iterator" version = "0.3.0" @@ -1143,7 +1149,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -1904,7 +1910,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.61.2", ] @@ -2195,6 +2201,25 @@ dependencies = [ "indexmap 2.13.0", ] +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_shared", + "serde", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -2282,6 +2307,35 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "postgres-protocol" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee9dd5fe15055d2b6806f4736aa0c9637217074e224bbec46d4041b91bb9491" +dependencies = [ + "base64 0.22.1", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "hmac", + "md-5", + "memchr", + "rand 0.9.2", + "sha2", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b858f82211e84682fecd373f68e1ceae642d8d751a1ebd13f33de6257b3e20" +dependencies = [ + "bytes", + "fallible-iterator 0.2.0", + "postgres-protocol", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -2822,7 +2876,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ "bitflags 2.10.0", - "fallible-iterator", + "fallible-iterator 0.3.0", "fallible-streaming-iterator", "hashlink 0.9.1", "libsqlite3-sys", @@ -3180,6 +3234,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + [[package]] name = "slab" version = "0.4.11" @@ -3360,7 +3420,7 @@ dependencies = [ "stringprep", "thiserror 2.0.17", "tracing", - "whoami", + "whoami 1.6.1", ] [[package]] @@ -3397,7 +3457,7 @@ dependencies = [ "stringprep", "thiserror 2.0.17", "tracing", - "whoami", + "whoami 1.6.1", ] [[package]] @@ -3895,6 +3955,32 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-postgres" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcea47c8f71744367793f16c2db1f11cb859d28f436bdb4ca9193eb1f787ee42" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "futures-channel", + "futures-util", + "log", + "parking_lot", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.9.2", + "socket2 0.6.1", + "tokio", + "tokio-util", + "whoami 2.1.0", +] + [[package]] name = "tokio-rustls" version = "0.26.4" @@ -4126,6 +4212,7 @@ dependencies = [ "serde_json", "starknet", "tokio", + "tokio-postgres", "tonic", "tonic-build", "torii", @@ -4151,6 +4238,7 @@ dependencies = [ "serde_json", "starknet", "tokio", + "tokio-postgres", "tonic", "tonic-build", "torii", @@ -4194,6 +4282,7 @@ dependencies = [ "serde_json", "starknet", "tokio", + "tokio-postgres", "tonic", "tonic-build", "torii", @@ -4591,6 +4680,15 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +[[package]] +name = "wasi" +version = "0.14.7+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -4606,6 +4704,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +[[package]] +name = "wasite" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" +dependencies = [ + "wasi 0.14.7+wasi-0.2.4", +] + [[package]] name = "wasm-bindgen" version = "0.2.106" @@ -4709,7 +4816,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ "libredox", - "wasite", + "wasite 0.1.0", +] + +[[package]] +name = "whoami" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fae98cf96deed1b7572272dfc777713c249ae40aa1cf8862e091e8b745f5361" +dependencies = [ + "libredox", + "wasite 1.0.2", + "web-sys", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 51d8e3f..890eaef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,7 +77,7 @@ clap = { version = "4.5", features = ["derive"] } # ETL Pipeline dependencies starknet = "0.17" -sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] } +sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "postgres", "any"] } async-trait = "0.1" anyhow = "1.0" chrono = "0.4" diff --git a/README.md b/README.md index d468192..4be77f9 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,18 @@ This work is still in progress, refer to the modules documentation for more deta ## 🚀 Quick Start +### Start PostgreSQL (Docker Compose) + +```bash +docker compose up -d postgres +``` + +Default connection string: + +```bash +export DATABASE_URL=postgres://torii:torii@localhost:5432/torii +``` + ### Running Examples ```bash diff --git a/bins/torii-erc20/README.md b/bins/torii-erc20/README.md index 8452fe9..57ad640 100644 --- a/bins/torii-erc20/README.md +++ b/bins/torii-erc20/README.md @@ -76,11 +76,14 @@ torii-erc20 \ --from-block \ --to-block \ --db-path ./my-data.db \ + --database-url postgres://torii:torii@localhost:5432/torii \ --port 3000 \ --no-auto-discovery \ --contracts , ``` +`--database-url` (or `DATABASE_URL`) enables PostgreSQL-backed storage for both engine state and ERC20 data. If unset, local SQLite files are used. + ## Architecture ``` diff --git a/bins/torii-erc20/src/config.rs b/bins/torii-erc20/src/config.rs index e4e5de1..ba4e859 100644 --- a/bins/torii-erc20/src/config.rs +++ b/bins/torii-erc20/src/config.rs @@ -30,6 +30,13 @@ pub struct Config { #[arg(long, default_value = "./erc20-data.db")] pub db_path: String, + /// Optional engine database URL/path. + /// + /// Supports PostgreSQL (`postgres://...`) and SQLite (`sqlite:...` or file path). + /// When omitted, engine state uses `/engine.db`. + #[arg(long, env = "DATABASE_URL")] + pub database_url: Option, + /// Disable auto-discovery of ERC20 contracts /// /// When enabled, only explicitly configured contracts will be indexed. diff --git a/bins/torii-erc20/src/main.rs b/bins/torii-erc20/src/main.rs index e1d7698..a1ffefb 100644 --- a/bins/torii-erc20/src/main.rs +++ b/bins/torii-erc20/src/main.rs @@ -32,6 +32,8 @@ use config::Config; use starknet::core::types::Felt; use std::path::Path; use std::sync::Arc; +#[cfg(feature = "profiling")] +use std::time::{SystemTime, UNIX_EPOCH}; use torii::etl::decoder::DecoderId; use torii::etl::extractor::{BlockRangeConfig, BlockRangeExtractor}; @@ -62,6 +64,9 @@ async fn main() -> Result<()> { tracing::info!("RPC URL: {}", config.rpc_url); tracing::info!("From block: {}", config.from_block); tracing::info!("Database: {}", config.db_path); + if let Some(url) = &config.database_url { + tracing::info!("Engine database URL: {}", url); + } tracing::info!( "Auto-discovery: {}", if config.no_auto_discovery { @@ -72,7 +77,11 @@ async fn main() -> Result<()> { ); // Create storage - let storage = Arc::new(Erc20Storage::new(&config.db_path)?); + let storage_path = config + .database_url + .as_deref() + .unwrap_or(config.db_path.as_str()); + let storage = Arc::new(Erc20Storage::new(storage_path).await?); tracing::info!("Database initialized"); // Create Starknet provider @@ -88,10 +97,12 @@ async fn main() -> Result<()> { from_block: config.from_block, to_block: config.to_block, batch_size: 50, + max_inflight_batches: 2, retry_policy: torii::etl::extractor::RetryPolicy::default(), }; let extractor = Box::new(BlockRangeExtractor::new(provider.clone(), extractor_config)); + tracing::info!(" Max in-flight batches: {}", 2); tracing::info!("Extractor configured"); // Create decoder @@ -119,9 +130,19 @@ async fn main() -> Result<()> { let db_path = Path::new(&config.db_path); let database_root = db_path.parent().unwrap_or(Path::new(".")).to_string_lossy(); + let engine_db_url = config.database_url.clone().unwrap_or_else(|| { + Path::new(&config.db_path) + .parent() + .unwrap_or(Path::new(".")) + .join("engine.db") + .to_string_lossy() + .to_string() + }); + let mut torii_config = torii::ToriiConfig::builder() .port(config.port) .database_root(database_root.as_ref()) + .engine_database_url(engine_db_url) .with_extractor(extractor) .add_decoder(decoder) .add_sink_boxed(sink) @@ -166,16 +187,16 @@ async fn main() -> Result<()> { // Print final statistics tracing::info!("Final Statistics:"); - if let Ok(transfer_count) = storage.get_transfer_count() { + if let Ok(transfer_count) = storage.get_transfer_count().await { tracing::info!(" Total transfers: {}", transfer_count); } - if let Ok(approval_count) = storage.get_approval_count() { + if let Ok(approval_count) = storage.get_approval_count().await { tracing::info!(" Total approvals: {}", approval_count); } - if let Ok(token_count) = storage.get_token_count() { + if let Ok(token_count) = storage.get_token_count().await { tracing::info!(" Unique tokens: {}", token_count); } - if let Ok(Some(latest_block)) = storage.get_latest_block() { + if let Ok(Some(latest_block)) = storage.get_latest_block().await { tracing::info!(" Latest block: {}", latest_block); } @@ -183,9 +204,21 @@ async fn main() -> Result<()> { #[cfg(feature = "profiling")] { if let Ok(report) = guard.report().build() { - let file = std::fs::File::create("flamegraph.svg").unwrap(); + let ts = SystemTime::now() + .duration_since(UNIX_EPOCH) + .map(|d| d.as_secs()) + .unwrap_or(0); + let db_backend = if storage_path.starts_with("postgres://") + || storage_path.starts_with("postgresql://") + { + "postgres" + } else { + "sqlite" + }; + let filename = format!("flamegraph-torii-erc20-block-range-{db_backend}-{ts}.svg"); + let file = std::fs::File::create(&filename).unwrap(); report.flamegraph(file).unwrap(); - tracing::info!("Flamegraph generated: flamegraph.svg"); + tracing::info!("Flamegraph generated: {}", filename); } } diff --git a/bins/torii-tokens/README.md b/bins/torii-tokens/README.md index 447eb8b..b5ee32c 100644 --- a/bins/torii-tokens/README.md +++ b/bins/torii-tokens/README.md @@ -89,6 +89,7 @@ torii-tokens --db-dir /path/to/data --from-block 0 | `--from-block` | `0` | Starting block number | | `--to-block` | None | Ending block (None = follow chain head) | | `--db-dir` | `./torii-data` | Directory for database files | +| `--database-url` | None | Engine DB URL/path (e.g. `postgres://...`) | | `--port` | `3000` | HTTP/gRPC server port | | `--erc20` | None | ERC20 contract addresses (comma-separated) | | `--erc721` | None | ERC721 contract addresses (comma-separated) | @@ -136,6 +137,8 @@ torii-tokens --from-block 0 The indexer creates separate SQLite databases for each component: ``` + +Set `--database-url` (or `DATABASE_URL`) to run engine + token storages on PostgreSQL. If unset, the local SQLite files below are used. ./torii-data/ engine.db # ETL state, cursors, statistics erc20.db # ERC20 transfers, approvals, balances diff --git a/bins/torii-tokens/client/apps/react/src/App.tsx b/bins/torii-tokens/client/apps/react/src/App.tsx index bf5c7ee..262ef5e 100644 --- a/bins/torii-tokens/client/apps/react/src/App.tsx +++ b/bins/torii-tokens/client/apps/react/src/App.tsx @@ -8,11 +8,15 @@ import { getErc20Stats, getErc20TokenMetadataPage, getErc721Stats, + getErc721TokensByAttributesPage, getErc721TransfersPage, getErc721TokenMetadataPage, getErc1155Stats, + getErc1155TokensByAttributesPage, getErc1155TransfersPage, getErc1155TokenMetadataPage, + type AttributeFilterInput, + type AttributeFacetCountResult, type TransferCursorResult, type TokenBalanceResult, type TransferResult, @@ -23,6 +27,7 @@ import TokenPanel from "./components/TokenPanel"; import UpdatesFeed from "./components/UpdatesFeed"; import QueryFilters from "./components/QueryFilters"; import QueryResults from "./components/QueryResults"; +import CollectionExplorer from "./components/CollectionExplorer"; interface Stats { totalTransfers: number; @@ -109,6 +114,18 @@ export default function App() { const [queryTransfersHistory, setQueryTransfersHistory] = useState<(TransferCursorResult | undefined)[]>([]); const [queryTransfersCursor, setQueryTransfersCursor] = useState(undefined); const [queryTransfersNext, setQueryTransfersNext] = useState(undefined); + const [collectionStandard, setCollectionStandard] = useState<"erc721" | "erc1155">("erc721"); + const [collectionContractAddress, setCollectionContractAddress] = useState(""); + const [collectionFiltersText, setCollectionFiltersText] = useState(""); + const [collectionTokenIds, setCollectionTokenIds] = useState([]); + const [collectionFacets, setCollectionFacets] = useState([]); + const [collectionTotalHits, setCollectionTotalHits] = useState(0); + const [collectionCursor, setCollectionCursor] = useState(undefined); + const [collectionNextCursor, setCollectionNextCursor] = useState(undefined); + const [collectionHistory, setCollectionHistory] = useState<(string | undefined)[]>([]); + const [collectionLoading, setCollectionLoading] = useState(false); + const [collectionError, setCollectionError] = useState(null); + const [activePage, setActivePage] = useState<"dashboard" | "collection">("dashboard"); const loadStats = useCallback(async () => { try { @@ -415,6 +432,82 @@ export default function App() { setUpdates([]); }, []); + const parseCollectionFilters = useCallback((input: string): AttributeFilterInput[] => { + return input + .split("\n") + .map((line) => line.trim()) + .filter(Boolean) + .map((line) => { + const [rawKey, rawValues = ""] = line.split("=", 2); + const key = rawKey.trim(); + const values = rawValues + .split("|") + .map((v) => v.trim()) + .filter(Boolean); + return { key, values }; + }) + .filter((f) => f.key.length > 0 && f.values.length > 0); + }, []); + + const runCollectionQuery = useCallback(async (cursorTokenId?: string) => { + if (!collectionContractAddress.trim()) { + return; + } + setCollectionLoading(true); + setCollectionError(null); + try { + const filters = parseCollectionFilters(collectionFiltersText); + const result = collectionStandard === "erc721" + ? await getErc721TokensByAttributesPage(client, { + contractAddress: collectionContractAddress.trim(), + filters, + cursorTokenId, + limit: PAGE_SIZE, + includeFacets: true, + facetLimit: 300, + }) + : await getErc1155TokensByAttributesPage(client, { + contractAddress: collectionContractAddress.trim(), + filters, + cursorTokenId, + limit: PAGE_SIZE, + includeFacets: true, + facetLimit: 300, + }); + + setCollectionTokenIds(result.tokenIds); + setCollectionFacets(result.facets); + setCollectionTotalHits(result.totalHits); + setCollectionNextCursor(result.nextCursorTokenId); + setCollectionCursor(cursorTokenId); + } catch (err) { + console.error("Collection query failed:", err); + setCollectionError(err instanceof Error ? err.message : "Collection query failed"); + } finally { + setCollectionLoading(false); + } + }, [collectionContractAddress, collectionFiltersText, collectionStandard, parseCollectionFilters]); + + const runCollectionQueryFresh = useCallback(async () => { + setCollectionHistory([]); + setCollectionCursor(undefined); + setCollectionNextCursor(undefined); + await runCollectionQuery(undefined); + }, [runCollectionQuery]); + + const navigateCollection = useCallback(async (dir: "next" | "prev") => { + if (dir === "next") { + if (!collectionNextCursor) return; + setCollectionHistory([...collectionHistory, collectionCursor]); + await runCollectionQuery(collectionNextCursor); + return; + } + if (collectionHistory.length === 0) return; + const prevCursor = collectionHistory[collectionHistory.length - 1]; + setCollectionHistory(collectionHistory.slice(0, -1)); + await runCollectionQuery(prevCursor); + }, [collectionNextCursor, collectionHistory, collectionCursor, runCollectionQuery]); + useEffect(() => { loadStats(); void Promise.all([ @@ -435,6 +528,20 @@ export default function App() {

Torii Tokens - React

ERC20 / ERC721 / ERC1155 Token Indexer

+
+ + +
- - - navigateQueryBalances("prev")} - onBalancesNext={() => navigateQueryBalances("next")} - balancesCanPrev={queryBalancesHistory.length > 0} - balancesCanNext={queryBalancesNext != null} - onTransfersPrev={() => navigateQueryTransfers("prev")} - onTransfersNext={() => navigateQueryTransfers("next")} - transfersCanPrev={queryTransfersHistory.length > 0} - transfersCanNext={queryTransfersNext != null} - balancesLoading={queryBalancesLoading} - transfersLoading={queryTransfersLoading} - /> + {activePage === "dashboard" ? ( + <> + -
- navigateDashboardMetadata("erc20", "prev")} - onMetadataNext={() => navigateDashboardMetadata("erc20", "next")} - metadataCanPrev={erc20MetadataHistory.length > 0} - metadataCanNext={erc20MetadataNext != null} - onTransfersPrev={() => navigateDashboardTransfers("erc20", "prev")} - onTransfersNext={() => navigateDashboardTransfers("erc20", "next")} - transfersCanPrev={erc20TransfersHistory.length > 0} - transfersCanNext={erc20TransfersNext != null} - metadataLoading={erc20MetadataLoading} - transfersLoading={erc20TransfersLoading} - /> + navigateQueryBalances("prev")} + onBalancesNext={() => navigateQueryBalances("next")} + balancesCanPrev={queryBalancesHistory.length > 0} + balancesCanNext={queryBalancesNext != null} + onTransfersPrev={() => navigateQueryTransfers("prev")} + onTransfersNext={() => navigateQueryTransfers("next")} + transfersCanPrev={queryTransfersHistory.length > 0} + transfersCanNext={queryTransfersNext != null} + balancesLoading={queryBalancesLoading} + transfersLoading={queryTransfersLoading} + /> - navigateDashboardMetadata("erc721", "prev")} - onMetadataNext={() => navigateDashboardMetadata("erc721", "next")} - metadataCanPrev={erc721MetadataHistory.length > 0} - metadataCanNext={erc721MetadataNext != null} - onTransfersPrev={() => navigateDashboardTransfers("erc721", "prev")} - onTransfersNext={() => navigateDashboardTransfers("erc721", "next")} - transfersCanPrev={erc721TransfersHistory.length > 0} - transfersCanNext={erc721TransfersNext != null} - metadataLoading={erc721MetadataLoading} - transfersLoading={erc721TransfersLoading} - /> +
+ navigateDashboardMetadata("erc20", "prev")} + onMetadataNext={() => navigateDashboardMetadata("erc20", "next")} + metadataCanPrev={erc20MetadataHistory.length > 0} + metadataCanNext={erc20MetadataNext != null} + onTransfersPrev={() => navigateDashboardTransfers("erc20", "prev")} + onTransfersNext={() => navigateDashboardTransfers("erc20", "next")} + transfersCanPrev={erc20TransfersHistory.length > 0} + transfersCanNext={erc20TransfersNext != null} + metadataLoading={erc20MetadataLoading} + transfersLoading={erc20TransfersLoading} + /> - navigateDashboardMetadata("erc1155", "prev")} - onMetadataNext={() => navigateDashboardMetadata("erc1155", "next")} - metadataCanPrev={erc1155MetadataHistory.length > 0} - metadataCanNext={erc1155MetadataNext != null} - onTransfersPrev={() => navigateDashboardTransfers("erc1155", "prev")} - onTransfersNext={() => navigateDashboardTransfers("erc1155", "next")} - transfersCanPrev={erc1155TransfersHistory.length > 0} - transfersCanNext={erc1155TransfersNext != null} - metadataLoading={erc1155MetadataLoading} - transfersLoading={erc1155TransfersLoading} - /> + navigateDashboardMetadata("erc721", "prev")} + onMetadataNext={() => navigateDashboardMetadata("erc721", "next")} + metadataCanPrev={erc721MetadataHistory.length > 0} + metadataCanNext={erc721MetadataNext != null} + onTransfersPrev={() => navigateDashboardTransfers("erc721", "prev")} + onTransfersNext={() => navigateDashboardTransfers("erc721", "next")} + transfersCanPrev={erc721TransfersHistory.length > 0} + transfersCanNext={erc721TransfersNext != null} + metadataLoading={erc721MetadataLoading} + transfersLoading={erc721TransfersLoading} + /> + + navigateDashboardMetadata("erc1155", "prev")} + onMetadataNext={() => navigateDashboardMetadata("erc1155", "next")} + metadataCanPrev={erc1155MetadataHistory.length > 0} + metadataCanNext={erc1155MetadataNext != null} + onTransfersPrev={() => navigateDashboardTransfers("erc1155", "prev")} + onTransfersNext={() => navigateDashboardTransfers("erc1155", "next")} + transfersCanPrev={erc1155TransfersHistory.length > 0} + transfersCanNext={erc1155TransfersNext != null} + metadataLoading={erc1155MetadataLoading} + transfersLoading={erc1155TransfersLoading} + /> - +
+ + ) : ( + 0} + onStandardChange={setCollectionStandard} + onContractAddressChange={setCollectionContractAddress} + onFiltersTextChange={setCollectionFiltersText} + onRun={() => void runCollectionQueryFresh()} + onNext={() => void navigateCollection("next")} + onPrev={() => void navigateCollection("prev")} /> -
+ )} ); } diff --git a/bins/torii-tokens/client/apps/react/src/components/CollectionExplorer.tsx b/bins/torii-tokens/client/apps/react/src/components/CollectionExplorer.tsx new file mode 100644 index 0000000..9ddd120 --- /dev/null +++ b/bins/torii-tokens/client/apps/react/src/components/CollectionExplorer.tsx @@ -0,0 +1,154 @@ +import { truncateAddress, type AttributeFacetCountResult } from "@torii-tokens/shared"; + +interface CollectionExplorerProps { + standard: "erc721" | "erc1155"; + contractAddress: string; + filtersText: string; + loading: boolean; + error: string | null; + totalHits: number; + tokenIds: string[]; + facets: AttributeFacetCountResult[]; + canNext: boolean; + canPrev: boolean; + onStandardChange: (v: "erc721" | "erc1155") => void; + onContractAddressChange: (v: string) => void; + onFiltersTextChange: (v: string) => void; + onRun: () => void; + onNext: () => void; + onPrev: () => void; +} + +export default function CollectionExplorer({ + standard, + contractAddress, + filtersText, + loading, + error, + totalHits, + tokenIds, + facets, + canNext, + canPrev, + onStandardChange, + onContractAddressChange, + onFiltersTextChange, + onRun, + onNext, + onPrev, +}: CollectionExplorerProps) { + return ( +
+

Collection Explorer

+

+ Filter format: one line per key, ex: Background=Blue|Red +

+ +
+
+
+ + +
+
+ + onContractAddressChange(e.target.value)} + /> +
+
+
+ + +
+
+ +
+
+ + {#if error} +
{error}
+ {/if} + +
+

Matched Token IDs ({totalHits})

+ {#if tokenIds.length === 0} +
No matches
+ {:else} +
+ + + + {#each tokenIds as tokenId (tokenId)} + + {/each} + +
Token ID
{truncateAddress(tokenId, 10)}
+
+ {/if} +
+ + +
+
+ +
+

Facet Counts

+ {#if facets.length === 0} +
No facet data
+ {:else} +
+ + + + + + + + + + {#each facets as facet (`${facet.key}:${facet.value}`)} + + + + + + {/each} + +
TraitValueCount
{facet.key}{facet.value}{facet.count}
+
+ {/if} +
+
+ diff --git a/bins/torii-tokens/client/apps/vanilla/src/components/collection-explorer.ts b/bins/torii-tokens/client/apps/vanilla/src/components/collection-explorer.ts new file mode 100644 index 0000000..bc4bc94 --- /dev/null +++ b/bins/torii-tokens/client/apps/vanilla/src/components/collection-explorer.ts @@ -0,0 +1,124 @@ +import { truncateAddress, type AttributeFacetCountResult } from "@torii-tokens/shared"; + +export interface CollectionExplorerViewModel { + standard: "erc721" | "erc1155"; + contractAddress: string; + filtersText: string; + tokenIds: string[]; + facets: AttributeFacetCountResult[]; + totalHits: number; + loading: boolean; + error: string | null; + canPrev: boolean; + canNext: boolean; +} + +export interface CollectionExplorerHandlers { + onStandardChange: (value: "erc721" | "erc1155") => void; + onContractChange: (value: string) => void; + onFiltersChange: (value: string) => void; + onRun: () => void; + onPrev: () => void; + onNext: () => void; +} + +export function renderCollectionExplorer(vm: CollectionExplorerViewModel): string { + const tokenRows = vm.tokenIds + .map((tokenId) => `${truncateAddress(tokenId, 10)}`) + .join(""); + const facetRows = vm.facets + .map((facet) => `${facet.key}${facet.value}${facet.count}`) + .join(""); + + return ` +
+

Collection Explorer

+

+ Filter format: one line per key, ex: Background=Blue|Red +

+
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ +
+
+
+ + ${vm.error ? `
${vm.error}
` : ""} + +
+

Matched Token IDs (${vm.totalHits})

+ ${vm.tokenIds.length === 0 + ? `
No matches
` + : `
${tokenRows}
Token ID
`} +
+ + +
+
+ +
+

Facet Counts

+ ${vm.facets.length === 0 + ? `
No facet data
` + : `
${facetRows}
TraitValueCount
`} +
+
+ `; +} + +export function bindCollectionExplorerHandlers(handlers: CollectionExplorerHandlers) { + document.getElementById("collection-standard")?.addEventListener("change", (e) => { + handlers.onStandardChange((e.target as HTMLSelectElement).value as "erc721" | "erc1155"); + }); + document.getElementById("collection-contract")?.addEventListener("input", (e) => { + handlers.onContractChange((e.target as HTMLInputElement).value); + }); + document.getElementById("collection-filters")?.addEventListener("input", (e) => { + handlers.onFiltersChange((e.target as HTMLTextAreaElement).value); + }); + document.getElementById("collection-form")?.addEventListener("submit", (e) => { + e.preventDefault(); + handlers.onRun(); + }); + document.getElementById("collection-prev")?.addEventListener("click", handlers.onPrev); + document.getElementById("collection-next")?.addEventListener("click", handlers.onNext); +} + diff --git a/bins/torii-tokens/client/apps/vanilla/src/main.ts b/bins/torii-tokens/client/apps/vanilla/src/main.ts index 54c2709..8335404 100644 --- a/bins/torii-tokens/client/apps/vanilla/src/main.ts +++ b/bins/torii-tokens/client/apps/vanilla/src/main.ts @@ -9,7 +9,9 @@ import { generateClientId, getErc20Stats, getErc721Stats, + getErc721TokensByAttributesPage, getErc1155Stats, + getErc1155TokensByAttributesPage, getErc20TransfersPage, getErc721TransfersPage, getErc1155TransfersPage, @@ -21,7 +23,13 @@ import { type TokenBalanceResult, type TransferResult, type TokenMetadataResult, + type AttributeFilterInput, + type AttributeFacetCountResult, } from "@torii-tokens/shared"; +import { + bindCollectionExplorerHandlers, + renderCollectionExplorer, +} from "./components/collection-explorer"; interface Stats { totalTransfers: number; @@ -107,6 +115,18 @@ class TokensApp { private queryTransfersHistory: (TransferCursorResult | undefined)[] = []; private queryTransfersCursor?: TransferCursorResult; private queryTransfersNext?: TransferCursorResult; + private collectionStandard: "erc721" | "erc1155" = "erc721"; + private collectionContractAddress = ""; + private collectionFiltersText = ""; + private collectionTokenIds: string[] = []; + private collectionFacets: AttributeFacetCountResult[] = []; + private collectionTotalHits = 0; + private collectionCursor?: string; + private collectionNextCursor?: string; + private collectionHistory: (string | undefined)[] = []; + private collectionLoading = false; + private collectionError: string | null = null; + private activePage: "dashboard" | "collection" = "dashboard"; constructor() { this.render(); @@ -285,6 +305,82 @@ class TokensApp { } } + private parseCollectionFilters(input: string): AttributeFilterInput[] { + return input + .split("\n") + .map((line) => line.trim()) + .filter(Boolean) + .map((line) => { + const [rawKey, rawValues = ""] = line.split("=", 2); + const key = rawKey.trim(); + const values = rawValues + .split("|") + .map((v) => v.trim()) + .filter(Boolean); + return { key, values }; + }) + .filter((f) => f.key.length > 0 && f.values.length > 0); + } + + private async runCollectionQuery(cursorTokenId?: string) { + if (!this.collectionContractAddress.trim()) return; + this.collectionLoading = true; + this.collectionError = null; + this.render(); + try { + const filters = this.parseCollectionFilters(this.collectionFiltersText); + const result = this.collectionStandard === "erc721" + ? await getErc721TokensByAttributesPage(this.client, { + contractAddress: this.collectionContractAddress.trim(), + filters, + cursorTokenId, + limit: this.pageSize, + includeFacets: true, + facetLimit: 300, + }) + : await getErc1155TokensByAttributesPage(this.client, { + contractAddress: this.collectionContractAddress.trim(), + filters, + cursorTokenId, + limit: this.pageSize, + includeFacets: true, + facetLimit: 300, + }); + + this.collectionTokenIds = result.tokenIds; + this.collectionFacets = result.facets; + this.collectionTotalHits = result.totalHits; + this.collectionNextCursor = result.nextCursorTokenId; + this.collectionCursor = cursorTokenId; + } catch (err) { + console.error("Collection query failed:", err); + this.collectionError = err instanceof Error ? err.message : "Collection query failed"; + } finally { + this.collectionLoading = false; + this.render(); + } + } + + private async runCollectionQueryFresh() { + this.collectionHistory = []; + this.collectionCursor = undefined; + this.collectionNextCursor = undefined; + await this.runCollectionQuery(undefined); + } + + private async navigateCollection(dir: "next" | "prev") { + if (dir === "next") { + if (!this.collectionNextCursor) return; + this.collectionHistory = [...this.collectionHistory, this.collectionCursor]; + await this.runCollectionQuery(this.collectionNextCursor); + return; + } + if (this.collectionHistory.length === 0) return; + const prevCursor = this.collectionHistory[this.collectionHistory.length - 1]; + this.collectionHistory = this.collectionHistory.slice(0, -1); + await this.runCollectionQuery(prevCursor); + } + private async subscribe() { try { this.unsubscribe = await this.client.subscribeTopics( @@ -466,20 +562,28 @@ class TokensApp {

Torii Tokens - Vanilla

ERC20 / ERC721 / ERC1155 Token Indexer

+
+ + +
${this.renderStatusPanel()} - ${this.renderQueryPanel()} - - ${this.renderQueryResults()} - -
- ${this.renderErc20Panel()} - ${this.renderErc721Panel()} - ${this.renderErc1155Panel()} - ${this.renderUpdatesPanel()} -
+ ${ + this.activePage === "dashboard" + ? ` + ${this.renderQueryPanel()} + ${this.renderQueryResults()} +
+ ${this.renderErc20Panel()} + ${this.renderErc721Panel()} + ${this.renderErc1155Panel()} + ${this.renderUpdatesPanel()} +
+ ` + : this.renderCollectionPanel() + } `; @@ -656,6 +760,21 @@ class TokensApp { `; } + private renderCollectionPanel(): string { + return renderCollectionExplorer({ + standard: this.collectionStandard, + contractAddress: this.collectionContractAddress, + filtersText: this.collectionFiltersText, + tokenIds: this.collectionTokenIds, + facets: this.collectionFacets, + totalHits: this.collectionTotalHits, + loading: this.collectionLoading, + error: this.collectionError, + canPrev: this.collectionHistory.length > 0, + canNext: this.collectionNextCursor != null, + }); + } + private renderStatusPanel(): string { return `
@@ -952,6 +1071,35 @@ class TokensApp { this.handleQuery(contractAddress, wallet); } }); + document.getElementById("nav-dashboard")?.addEventListener("click", () => { + this.activePage = "dashboard"; + this.render(); + }); + document.getElementById("nav-collection")?.addEventListener("click", () => { + this.activePage = "collection"; + this.render(); + }); + bindCollectionExplorerHandlers({ + onStandardChange: (value) => { + this.collectionStandard = value; + }, + onContractChange: (value) => { + this.collectionContractAddress = value; + this.render(); + }, + onFiltersChange: (value) => { + this.collectionFiltersText = value; + }, + onRun: () => { + void this.runCollectionQueryFresh(); + }, + onPrev: () => { + void this.navigateCollection("prev"); + }, + onNext: () => { + void this.navigateCollection("next"); + }, + }); } } diff --git a/bins/torii-tokens/client/shared/src/index.ts b/bins/torii-tokens/client/shared/src/index.ts index 1839671..67a9aa0 100644 --- a/bins/torii-tokens/client/shared/src/index.ts +++ b/bins/torii-tokens/client/shared/src/index.ts @@ -27,11 +27,13 @@ export { getErc721Stats, getErc721Transfers, getErc721TransfersPage, + getErc721TokensByAttributesPage, getErc721TokenMetadata, getErc721TokenMetadataPage, getErc1155Balance, getErc1155Transfers, getErc1155TransfersPage, + getErc1155TokensByAttributesPage, getErc1155Stats, getErc1155TokenMetadata, getErc1155TokenMetadataPage, @@ -46,5 +48,8 @@ export type { TokenBalanceResult, TransferResult, Erc1155TransferResult, + AttributeFilterInput, + AttributeFacetCountResult, + AttributeTokenQueryResult, StatsResult, } from "./queries"; diff --git a/bins/torii-tokens/client/shared/src/queries.ts b/bins/torii-tokens/client/shared/src/queries.ts index 6d22da2..6956842 100644 --- a/bins/torii-tokens/client/shared/src/queries.ts +++ b/bins/torii-tokens/client/shared/src/queries.ts @@ -9,10 +9,12 @@ import { Erc721GetStatsRequest, Erc721GetStatsResponse, Erc721GetTransfersRequest, Erc721GetTransfersResponse, Erc721GetTokenMetadataRequest, Erc721GetTokenMetadataResponse, + Erc721QueryTokensByAttributesRequest, Erc721QueryTokensByAttributesResponse, Erc1155GetStatsRequest, Erc1155GetStatsResponse, Erc1155GetTransfersRequest, Erc1155GetTransfersResponse, Erc1155GetBalanceRequest, Erc1155GetBalanceResponse, Erc1155GetTokenMetadataRequest, Erc1155GetTokenMetadataResponse, + Erc1155QueryTokensByAttributesRequest, Erc1155QueryTokensByAttributesResponse, } from "./schemas"; export interface TokenQuery { @@ -83,6 +85,24 @@ export interface PageResult { nextCursor?: TCursor; } +export interface AttributeFilterInput { + key: string; + values: string[]; +} + +export interface AttributeFacetCountResult { + key: string; + value: string; + count: number; +} + +export interface AttributeTokenQueryResult { + tokenIds: string[]; + nextCursorTokenId?: string; + totalHits: number; + facets: AttributeFacetCountResult[]; +} + const DEFAULT_PAGE_LIMIT = 100; async function getErc20BalanceWithDecimals( @@ -612,3 +632,111 @@ export async function getErc1155TransfersPage( return { items, nextCursor }; } + +export async function getErc721TokensByAttributesPage( + client: TokensClient, + options: { + contractAddress: string; + filters: AttributeFilterInput[]; + cursorTokenId?: string; + limit?: number; + includeFacets?: boolean; + facetLimit?: number; + } +): Promise { + const response = await client.call( + "/torii.sinks.erc721.Erc721/QueryTokensByAttributes", + { + token: hexToBytes(options.contractAddress), + filters: options.filters + .filter((f) => f.key.trim().length > 0 && f.values.length > 0) + .map((f) => ({ + key: f.key.trim(), + values: f.values.map((v) => v.trim()).filter(Boolean), + })), + ...(options.cursorTokenId ? { cursorTokenId: hexToBytes(options.cursorTokenId) } : {}), + limit: options.limit ?? DEFAULT_PAGE_LIMIT, + includeFacets: options.includeFacets ?? true, + facetLimit: options.facetLimit ?? DEFAULT_PAGE_LIMIT, + }, + Erc721QueryTokensByAttributesRequest, + Erc721QueryTokensByAttributesResponse + ); + + const tokenIdsRaw = response.tokenIds; + const tokenIds = (Array.isArray(tokenIdsRaw) ? tokenIdsRaw : tokenIdsRaw ? [tokenIdsRaw] : []) + .map((v) => bytesToHex(v as string | Uint8Array | undefined)); + + const facetsRaw = response.facets; + const facets = (Array.isArray(facetsRaw) ? facetsRaw : facetsRaw ? [facetsRaw] : []).map((f) => { + const row = f as Record; + return { + key: String(row.key ?? ""), + value: String(row.value ?? ""), + count: Number(row.count ?? 0), + }; + }); + + return { + tokenIds, + nextCursorTokenId: response.nextCursorTokenId + ? bytesToHex(response.nextCursorTokenId as string | Uint8Array | undefined) + : undefined, + totalHits: Number(response.totalHits ?? 0), + facets, + }; +} + +export async function getErc1155TokensByAttributesPage( + client: TokensClient, + options: { + contractAddress: string; + filters: AttributeFilterInput[]; + cursorTokenId?: string; + limit?: number; + includeFacets?: boolean; + facetLimit?: number; + } +): Promise { + const response = await client.call( + "/torii.sinks.erc1155.Erc1155/QueryTokensByAttributes", + { + token: hexToBytes(options.contractAddress), + filters: options.filters + .filter((f) => f.key.trim().length > 0 && f.values.length > 0) + .map((f) => ({ + key: f.key.trim(), + values: f.values.map((v) => v.trim()).filter(Boolean), + })), + ...(options.cursorTokenId ? { cursorTokenId: hexToBytes(options.cursorTokenId) } : {}), + limit: options.limit ?? DEFAULT_PAGE_LIMIT, + includeFacets: options.includeFacets ?? true, + facetLimit: options.facetLimit ?? DEFAULT_PAGE_LIMIT, + }, + Erc1155QueryTokensByAttributesRequest, + Erc1155QueryTokensByAttributesResponse + ); + + const tokenIdsRaw = response.tokenIds; + const tokenIds = (Array.isArray(tokenIdsRaw) ? tokenIdsRaw : tokenIdsRaw ? [tokenIdsRaw] : []) + .map((v) => bytesToHex(v as string | Uint8Array | undefined)); + + const facetsRaw = response.facets; + const facets = (Array.isArray(facetsRaw) ? facetsRaw : facetsRaw ? [facetsRaw] : []).map((f) => { + const row = f as Record; + return { + key: String(row.key ?? ""), + value: String(row.value ?? ""), + count: Number(row.count ?? 0), + }; + }); + + return { + tokenIds, + nextCursorTokenId: response.nextCursorTokenId + ? bytesToHex(response.nextCursorTokenId as string | Uint8Array | undefined) + : undefined, + totalHits: Number(response.totalHits ?? 0), + facets, + }; +} diff --git a/bins/torii-tokens/client/shared/src/schemas.ts b/bins/torii-tokens/client/shared/src/schemas.ts index 58e0095..4545a58 100644 --- a/bins/torii-tokens/client/shared/src/schemas.ts +++ b/bins/torii-tokens/client/shared/src/schemas.ts @@ -264,6 +264,49 @@ export const Erc721GetTokenMetadataResponse = reg({ }, }); +export const Erc721AttributeFilter = reg({ + name: "Erc721AttributeFilter", + fullName: "torii.sinks.erc721.AttributeFilter", + fields: { + key: { number: 1, type: "string", repeated: false }, + values: { number: 2, type: "string", repeated: true }, + }, +}); + +export const Erc721AttributeFacetCount = reg({ + name: "Erc721AttributeFacetCount", + fullName: "torii.sinks.erc721.AttributeFacetCount", + fields: { + key: { number: 1, type: "string", repeated: false }, + value: { number: 2, type: "string", repeated: false }, + count: { number: 3, type: "uint64", repeated: false }, + }, +}); + +export const Erc721QueryTokensByAttributesRequest = reg({ + name: "Erc721QueryTokensByAttributesRequest", + fullName: "torii.sinks.erc721.QueryTokensByAttributesRequest", + fields: { + token: { number: 1, type: "bytes", repeated: false }, + filters: { number: 2, type: "message", repeated: true, messageType: "Erc721AttributeFilter" }, + cursorTokenId: { number: 3, type: "bytes", repeated: false, optional: true }, + limit: { number: 4, type: "uint32", repeated: false }, + includeFacets: { number: 5, type: "bool", repeated: false }, + facetLimit: { number: 6, type: "uint32", repeated: false }, + }, +}); + +export const Erc721QueryTokensByAttributesResponse = reg({ + name: "Erc721QueryTokensByAttributesResponse", + fullName: "torii.sinks.erc721.QueryTokensByAttributesResponse", + fields: { + tokenIds: { number: 1, type: "bytes", repeated: true }, + nextCursorTokenId: { number: 2, type: "bytes", repeated: false, optional: true }, + totalHits: { number: 3, type: "uint64", repeated: false }, + facets: { number: 4, type: "message", repeated: true, messageType: "Erc721AttributeFacetCount" }, + }, +}); + export const Erc721GetStatsRequest = reg({ name: "Erc721GetStatsRequest", fullName: "torii.sinks.erc721.GetStatsRequest", @@ -374,6 +417,49 @@ export const Erc1155GetTokenMetadataResponse = reg({ }, }); +export const Erc1155AttributeFilter = reg({ + name: "Erc1155AttributeFilter", + fullName: "torii.sinks.erc1155.AttributeFilter", + fields: { + key: { number: 1, type: "string", repeated: false }, + values: { number: 2, type: "string", repeated: true }, + }, +}); + +export const Erc1155AttributeFacetCount = reg({ + name: "Erc1155AttributeFacetCount", + fullName: "torii.sinks.erc1155.AttributeFacetCount", + fields: { + key: { number: 1, type: "string", repeated: false }, + value: { number: 2, type: "string", repeated: false }, + count: { number: 3, type: "uint64", repeated: false }, + }, +}); + +export const Erc1155QueryTokensByAttributesRequest = reg({ + name: "Erc1155QueryTokensByAttributesRequest", + fullName: "torii.sinks.erc1155.QueryTokensByAttributesRequest", + fields: { + token: { number: 1, type: "bytes", repeated: false }, + filters: { number: 2, type: "message", repeated: true, messageType: "Erc1155AttributeFilter" }, + cursorTokenId: { number: 3, type: "bytes", repeated: false, optional: true }, + limit: { number: 4, type: "uint32", repeated: false }, + includeFacets: { number: 5, type: "bool", repeated: false }, + facetLimit: { number: 6, type: "uint32", repeated: false }, + }, +}); + +export const Erc1155QueryTokensByAttributesResponse = reg({ + name: "Erc1155QueryTokensByAttributesResponse", + fullName: "torii.sinks.erc1155.QueryTokensByAttributesResponse", + fields: { + tokenIds: { number: 1, type: "bytes", repeated: true }, + nextCursorTokenId: { number: 2, type: "bytes", repeated: false, optional: true }, + totalHits: { number: 3, type: "uint64", repeated: false }, + facets: { number: 4, type: "message", repeated: true, messageType: "Erc1155AttributeFacetCount" }, + }, +}); + export const Erc1155GetBalanceRequest = reg({ name: "Erc1155GetBalanceRequest", fullName: "torii.sinks.erc1155.GetBalanceRequest", diff --git a/bins/torii-tokens/flamegraph-0.svg b/bins/torii-tokens/flamegraph-0.svg new file mode 100644 index 0000000..3acccd6 --- /dev/null +++ b/bins/torii-tokens/flamegraph-0.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (4 samples, 0.01%)__psynch_cvwait (70 samples, 0.26%)__psynch_cvwait (9 samples, 0.03%)_pthread_cond_wait (11 samples, 0.04%)tokio::runtime::park::Inner::park (100 samples, 0.37%)parking_lot::condvar::Condvar::wait_until_internal (92 samples, 0.34%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (3 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (4 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.01%)flume::Chan<T>::pull_pending (7 samples, 0.03%)flume::Chan<T>::pull_pending (3 samples, 0.01%)_pthread_mutex_firstfit_lock_slow (4 samples, 0.01%)__psynch_mutexwait (4 samples, 0.01%)flume::Shared<T>::recv (8 samples, 0.03%)std::sys::pal::unix::sync::mutex::Mutex::lock (5 samples, 0.02%)_pthread_mutex_firstfit_unlock_slow (12 samples, 0.04%)__psynch_mutexdrop (12 samples, 0.04%)_xzm_free (3 samples, 0.01%)flume::async::RecvFut<T>::reset_hook (21 samples, 0.08%)pthread_mutex_unlock (10 samples, 0.04%)_pthread_mutex_firstfit_lock_slow (4 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (123 samples, 0.46%)std::sys::pal::unix::sync::mutex::Mutex::lock (23 samples, 0.09%)pthread_mutex_lock (18 samples, 0.07%)DYLD-STUB$$pthread_mutex_unlock (8 samples, 0.03%)flume::Chan<T>::pull_pending (3 samples, 0.01%)pthread_mutex_unlock (20 samples, 0.07%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (259 samples, 0.97%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (249 samples, 0.93%)std::sys::pal::unix::sync::mutex::Mutex::lock (18 samples, 0.07%)pthread_mutex_lock (11 samples, 0.04%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (5 samples, 0.02%)pthread_mutex_unlock (11 samples, 0.04%)DYLD-STUB$$pthread_mutex_lock (6 samples, 0.02%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (347 samples, 1.30%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (320 samples, 1.20%)std::sys::pal::unix::sync::mutex::Mutex::lock (27 samples, 0.10%)pthread_mutex_lock (15 samples, 0.06%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (372 samples, 1.39%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (8 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.01%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::type_info (5 samples, 0.02%)_free (6 samples, 0.02%)DYLD-STUB$$_platform_bzero (3 samples, 0.01%)_xzm_free (24 samples, 0.09%)_malloc_zone_malloc (6 samples, 0.02%)_xzm_xzone_malloc (6 samples, 0.02%)DYLD-STUB$$memcpy (3 samples, 0.01%)_platform_memmove (8 samples, 0.03%)_platform_memmove (4 samples, 0.01%)_xzm_free (13 samples, 0.05%)_malloc_zone_realloc (37 samples, 0.14%)xzm_realloc (32 samples, 0.12%)_xzm_xzone_malloc (4 samples, 0.01%)_realloc (50 samples, 0.19%)xzm_malloc_zone_size (10 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (59 samples, 0.22%)alloc::raw_vec::finish_grow (53 samples, 0.20%)<alloc::string::String as core::fmt::Write>::write_str (72 samples, 0.27%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.01%)alloc::fmt::format::format_inner (105 samples, 0.39%)core::fmt::write (82 samples, 0.31%)core::fmt::write (3 samples, 0.01%)core::hash::BuildHasher::hash_one (6 samples, 0.02%)DYLD-STUB$$free (10 samples, 0.04%)_free (15 samples, 0.06%)_xzm_free (70 samples, 0.26%)_platform_memset (20 samples, 0.07%)DYLD-STUB$$pthread_mutex_unlock (3 samples, 0.01%)_xzm_free (5 samples, 0.02%)malloc_zone_free (3 samples, 0.01%)pthread_mutex_unlock (7 samples, 0.03%)_xzm_free (31 samples, 0.12%)_xzm_xzone_madvise_batch (5 samples, 0.02%)xzm_reclaim_mark_free_locked (5 samples, 0.02%)xzm_reclaim_sync_and_resize (4 samples, 0.01%)mach_vm_reclaim_ring_resize (4 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (4 samples, 0.01%)mach_msg2_internal (4 samples, 0.01%)mach_msg2_trap (4 samples, 0.01%)default_zone_free (3 samples, 0.01%)malloc_zone_free (6 samples, 0.02%)pthread_mutex_lock (11 samples, 0.04%)sqlite3MemSize (45 samples, 0.17%)xzm_malloc_zone_size (32 samples, 0.12%)pthread_mutex_unlock (5 samples, 0.02%)_xzm_free (20 samples, 0.07%)malloc_zone_free (5 samples, 0.02%)pthread_mutex_lock (6 samples, 0.02%)sqlite3ValueFree (190 samples, 0.71%)vdbeMemClear (72 samples, 0.27%)sqlite3DbFreeNN (63 samples, 0.24%)sqlite3MemSize (22 samples, 0.08%)xzm_malloc_zone_size (19 samples, 0.07%)alloc::sync::Arc<T,A>::drop_slow (214 samples, 0.80%)core::ptr::drop_in_place<sqlx_sqlite::row::SqliteRow> (322 samples, 1.20%)sqlite3ValueFree (3 samples, 0.01%)core::hash::BuildHasher::hash_one (46 samples, 0.17%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (28 samples, 0.10%)hashbrown::map::HashMap<K,V,S,A>::insert (191 samples, 0.71%)hashbrown::raw::RawTable<T,A>::reserve_rehash (95 samples, 0.36%)core::hash::BuildHasher::hash_one (58 samples, 0.22%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (36 samples, 0.13%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::is_null (9 samples, 0.03%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::type_info (4 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.01%)__rustc::__rdl_alloc (3 samples, 0.01%)_malloc_zone_malloc (6 samples, 0.02%)_platform_memmove (9 samples, 0.03%)_xzm_xzone_malloc (6 samples, 0.02%)core::str::converts::from_utf8 (11 samples, 0.04%)sqlx_sqlite::types::str::_<impl sqlx_core::decode::Decode<sqlx_sqlite::database::Sqlite> for alloc::string::String>::decode (58 samples, 0.22%)sqlx_sqlite::value::ValueHandle::text (18 samples, 0.07%)sqlite3_value_bytes (3 samples, 0.01%)sqlx_core::row::Row::try_get (87 samples, 0.33%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (731 samples, 2.73%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (710 samples, 2.66%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (387 samples, 1.45%)starknet_types_core::felt::Felt::from_hex (733 samples, 2.74%)st..torii_tokens::run_indexer::_{{closure}} (1,893 samples, 7.08%)torii_toke..start (2,007 samples, 7.51%)startmain (2,002 samples, 7.49%)mainstd::rt::lang_start_internal (2,002 samples, 7.49%)std::rt::l..std::rt::lang_start::_{{closure}} (2,002 samples, 7.49%)std::rt::l..std::sys::backtrace::__rust_begin_short_backtrace (2,002 samples, 7.49%)std::sys::..torii_tokens::main (2,002 samples, 7.49%)torii_toke..tokio::runtime::park::CachedParkThread::block_on (2,002 samples, 7.49%)tokio::run..flume::Sender<T>::send (3 samples, 0.01%)<deduplicated_symbol> (13 samples, 0.05%)_malloc_zone_malloc (19 samples, 0.07%)_xzm_xzone_malloc (16 samples, 0.06%)sqlite3_column_value (3 samples, 0.01%)__rustc::__rdl_alloc (7 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (4 samples, 0.01%)_xzm_xzone_malloc (3 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (7 samples, 0.03%)sqlite3Malloc (4 samples, 0.01%)sqlite3_column_value (10 samples, 0.04%)sqlite3_initialize (5 samples, 0.02%)<deduplicated_symbol> (5 samples, 0.02%)DYLD-STUB$$pthread_mutex_unlock (3 samples, 0.01%)_malloc_zone_malloc (7 samples, 0.03%)_xzm_xzone_malloc (17 samples, 0.06%)default_zone_size (10 samples, 0.04%)pthread_mutex_lock (7 samples, 0.03%)pthread_mutex_unlock (10 samples, 0.04%)sqlite3MemMalloc (26 samples, 0.10%)_xzm_xzone_thread_cache_fill_and_malloc (19 samples, 0.07%)sqlite3Malloc (149 samples, 0.56%)sqlite3MemSize (34 samples, 0.13%)xzm_malloc_zone_size (25 samples, 0.09%)_platform_memmove (16 samples, 0.06%)default_zone_size (3 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.01%)_malloc_zone_malloc (8 samples, 0.03%)_xzm_xzone_malloc (6 samples, 0.02%)pthread_mutex_lock (8 samples, 0.03%)pthread_mutex_unlock (4 samples, 0.01%)sqlite3MemMalloc (17 samples, 0.06%)_xzm_xzone_thread_cache_fill_and_malloc (13 samples, 0.05%)sqlite3Malloc (93 samples, 0.35%)sqlite3MemSize (29 samples, 0.11%)xzm_malloc_zone_size (27 samples, 0.10%)sqlite3VdbeMemMakeWriteable (162 samples, 0.61%)vdbeMemAddTerminator (153 samples, 0.57%)sqlite3VdbeMemGrow (133 samples, 0.50%)sqlite3MemSize (21 samples, 0.08%)xzm_malloc_zone_size (18 samples, 0.07%)sqlx_sqlite::row::SqliteRow::current (385 samples, 1.44%)sqlite3_value_dup (329 samples, 1.23%)vdbeMemAddTerminator (3 samples, 0.01%)_platform_memmove (3 samples, 0.01%)btreeParseCellPtr (5 samples, 0.02%)pcache1Fetch (5 samples, 0.02%)pcache1FetchStage2 (3 samples, 0.01%)pread (109 samples, 0.41%)unixRead (13 samples, 0.05%)pread (13 samples, 0.05%)sqlite3BtreeNext (133 samples, 0.50%)moveToChild (130 samples, 0.49%)getAndInitPage (130 samples, 0.49%)getPageNormal (129 samples, 0.48%)readDbPage (124 samples, 0.46%)sqlx_sqlite::statement::handle::StatementHandle::step (245 samples, 0.92%)sqlite3_step (243 samples, 0.91%)sqlite3VdbeExec (236 samples, 0.88%)<sqlx_sqlite::connection::execute::ExecuteIter as core::iter::traits::iterator::Iterator>::next (692 samples, 2.59%)<s..sqlx_sqlite::statement::virtual::VirtualStatement::prepare_next (3 samples, 0.01%)sqlite3LockAndPrepare (3 samples, 0.01%)sqlite3Prepare (3 samples, 0.01%)sqlite3RunParser (3 samples, 0.01%)yy_reduce (3 samples, 0.01%)sqlite3Pragma (3 samples, 0.01%)__psynch_cvsignal (166 samples, 0.62%)pthread_cond_signal (17 samples, 0.06%)__psynch_cvsignal (16 samples, 0.06%)mach_absolute_time (3 samples, 0.01%)clock_gettime_nsec_np (6 samples, 0.02%)mach_absolute_time (19 samples, 0.07%)parking_lot::condvar::Condvar::notify_one_slow (217 samples, 0.81%)std::sys::pal::unix::time::Timespec::now (30 samples, 0.11%)clock_gettime (30 samples, 0.11%)<flume::async::AsyncSignal as flume::signal::Signal>::fire (224 samples, 0.84%)tokio::runtime::park::wake_by_ref (5 samples, 0.02%)_pthread_mutex_firstfit_unlock_slow (3 samples, 0.01%)__psynch_mutexdrop (3 samples, 0.01%)pthread_mutex_unlock (18 samples, 0.07%)__psynch_mutexwait (14 samples, 0.05%)_pthread_mutex_firstfit_lock_slow (20 samples, 0.07%)flume::Sender<T>::send (291 samples, 1.09%)std::sys::pal::unix::sync::mutex::Mutex::lock (31 samples, 0.12%)pthread_mutex_lock (8 samples, 0.03%)nw_path_libinfo_path_check (3 samples, 0.01%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (5 samples, 0.02%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (5 samples, 0.02%)getaddrinfo (5 samples, 0.02%)si_addrinfo (5 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (5 samples, 0.02%)tokio::runtime::scheduler::multi_thread::park::Parker::park (5 samples, 0.02%)tokio::runtime::time::Driver::park_internal (5 samples, 0.02%)tokio::runtime::io::driver::Driver::turn (4 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (3 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (5 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (3 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (3 samples, 0.01%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (3 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.01%)tokio::runtime::context::with_scheduler (3 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.01%)mio::waker::Waker::wake (3 samples, 0.01%)kevent (3 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (5 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (12 samples, 0.04%)http_body_util::collected::Collected<B>::to_bytes (3 samples, 0.01%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (3 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (11 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (26 samples, 0.10%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.09%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (25 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (25 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (25 samples, 0.09%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (22 samples, 0.08%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (6 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (6 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.12%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (31 samples, 0.12%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (31 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.12%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (31 samples, 0.12%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (7 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (12 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.03%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (60 samples, 0.22%)serde_json::de::from_str (48 samples, 0.18%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (48 samples, 0.18%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (48 samples, 0.18%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (48 samples, 0.18%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (15 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (14 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (8 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (8 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (5 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (5 samples, 0.02%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (9 samples, 0.03%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (12 samples, 0.04%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::InvokeTransactionContent>::deserialize (11 samples, 0.04%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (10 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (10 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (10 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (3 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.04%)serde::private::de::content::content_clone (10 samples, 0.04%)serde::private::de::content::content_clone (10 samples, 0.04%)serde::private::de::content::content_clone (8 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (15 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (15 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (15 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (12 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (7 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (43 samples, 0.16%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (43 samples, 0.16%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (43 samples, 0.16%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (43 samples, 0.16%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (31 samples, 0.12%)<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (21 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (21 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (21 samples, 0.08%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (21 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (21 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (18 samples, 0.07%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (18 samples, 0.07%)_xzm_free (3 samples, 0.01%)_xzm_free (3 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (14 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (14 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (13 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (13 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (13 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (9 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (127 samples, 0.48%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (127 samples, 0.48%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (67 samples, 0.25%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (10 samples, 0.04%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (10 samples, 0.04%)serde_json::value::de::visit_array (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (10 samples, 0.04%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (10 samples, 0.04%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (10 samples, 0.04%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (10 samples, 0.04%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (10 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (10 samples, 0.04%)serde_json::value::de::visit_array (9 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (9 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (7 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (6 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (6 samples, 0.02%)serde_json::value::de::visit_array (6 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6 samples, 0.02%)Security::KeychainCore::Certificate::publicKey() (3 samples, 0.01%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (3 samples, 0.01%)Security::KeychainCore::Certificate::clHandle() (3 samples, 0.01%)Security::CssmClient::AttachmentImpl::activate() (3 samples, 0.01%)Security::CssmClient::ModuleImpl::activate() (3 samples, 0.01%)CSSM_ModuleLoad (3 samples, 0.01%)Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) (3 samples, 0.01%)Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) (3 samples, 0.01%)Security::MDSClient::Directory::cdsa() const (3 samples, 0.01%)mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) (3 samples, 0.01%)Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (3 samples, 0.01%)Security::DatabaseSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (3 samples, 0.01%)SSLHandshake (6 samples, 0.02%)SSLHandshakeProceed (6 samples, 0.02%)tls_handshake_process (5 samples, 0.02%)SSLProcessHandshakeRecordInner (5 samples, 0.02%)tls_handshake_message_callback (4 samples, 0.01%)tls_helper_set_peer_pubkey (4 samples, 0.01%)SecTrustCopyPublicKey (4 samples, 0.01%)SecCertificateCopyPublicKey$LEGACYMAC (4 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (7 samples, 0.03%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (7 samples, 0.03%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (7 samples, 0.03%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (10 samples, 0.04%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (10 samples, 0.04%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (10 samples, 0.04%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (10 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (8 samples, 0.03%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (8 samples, 0.03%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (8 samples, 0.03%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (8 samples, 0.03%)reqwest::connect::with_timeout::_{{closure}} (8 samples, 0.03%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (8 samples, 0.03%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (8 samples, 0.03%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (11 samples, 0.04%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (11 samples, 0.04%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (140 samples, 0.52%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (3 samples, 0.01%)serde_json::de::from_str (3 samples, 0.01%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (3 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (3 samples, 0.01%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (3 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (7 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (7 samples, 0.03%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (7 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (7 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (7 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (7 samples, 0.03%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (11 samples, 0.04%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (11 samples, 0.04%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (8 samples, 0.03%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (14 samples, 0.05%)torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (14 samples, 0.05%)sqlite3BtreeInsert (5 samples, 0.02%)sqlite3BtreeIndexMoveto (4 samples, 0.01%)getAndInitPage (4 samples, 0.01%)getPageMMap (4 samples, 0.01%)getPageNormal (4 samples, 0.01%)readDbPage (3 samples, 0.01%)unixRead (3 samples, 0.01%)pread (3 samples, 0.01%)rusqlite::statement::Statement::execute_with_bound_parameters (8 samples, 0.03%)sqlite3_step (8 samples, 0.03%)sqlite3VdbeExec (8 samples, 0.03%)sqlite3BtreeIndexMoveto (3 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments (14 samples, 0.05%)rusqlite::statement::Statement::query_row (4 samples, 0.01%)rusqlite::row::Rows::get_expected_row (4 samples, 0.01%)sqlite3_step (4 samples, 0.01%)sqlite3VdbeExec (4 samples, 0.01%)getAndInitPage (5 samples, 0.02%)getPageMMap (5 samples, 0.02%)getPageNormal (5 samples, 0.02%)readDbPage (5 samples, 0.02%)unixRead (5 samples, 0.02%)pread (5 samples, 0.02%)sqlite3BtreeIndexMoveto (6 samples, 0.02%)torii_erc20::storage::Erc20Storage::check_balances_batch (9 samples, 0.03%)torii_erc20::storage::Erc20Storage::get_balances_batch (9 samples, 0.03%)rusqlite::statement::Statement::query_row (9 samples, 0.03%)rusqlite::row::Rows::get_expected_row (9 samples, 0.03%)sqlite3_step (9 samples, 0.03%)sqlite3VdbeExec (9 samples, 0.03%)sqlite3VdbeFinishMoveto (3 samples, 0.01%)sqlite3BtreeTableMoveto (3 samples, 0.01%)moveToChild (3 samples, 0.01%)getAndInitPage (3 samples, 0.01%)btreeInitPage (12 samples, 0.04%)decodeFlags (3 samples, 0.01%)pcache1FetchStage2 (24 samples, 0.09%)pcache1Fetch (50 samples, 0.19%)getPageNormal (1,897 samples, 7.10%)getPageNor..readDbPage (1,845 samples, 6.90%)readDbPageunixRead (1,838 samples, 6.87%)unixReadpread (1,836 samples, 6.87%)preadmoveToChild (1,924 samples, 7.20%)moveToChildgetAndInitPage (1,923 samples, 7.19%)getAndInit..getPageMMap (1,905 samples, 7.13%)getPageMMapwalFindFrame (4 samples, 0.01%)torii_erc20::storage::Erc20Storage::get_approval_count (1,934 samples, 7.23%)torii_erc2..rusqlite::statement::Statement::query_row (1,934 samples, 7.23%)rusqlite::..rusqlite::row::Rows::get_expected_row (1,933 samples, 7.23%)rusqlite::..sqlite3_step (1,933 samples, 7.23%)sqlite3_st..sqlite3VdbeExec (1,933 samples, 7.23%)sqlite3Vdb..sqlite3BtreeCount (1,932 samples, 7.23%)sqlite3Btr..pcache1Unpin (3 samples, 0.01%)sqlite3BlobCompare (56 samples, 0.21%)sqlite3BtreeNext (35 samples, 0.13%)DYLD-STUB$$memcpy (26 samples, 0.10%)_platform_memmove (177 samples, 0.66%)DYLD-STUB$$pthread_mutex_unlock (3 samples, 0.01%)pcache1Fetch (12 samples, 0.04%)pcache1FetchStage2 (4 samples, 0.01%)moveToChild (395 samples, 1.48%)getAndInitPage (394 samples, 1.47%)getPageMMap (393 samples, 1.47%)getPageNormal (393 samples, 1.47%)readDbPage (378 samples, 1.41%)unixRead (373 samples, 1.40%)pread (373 samples, 1.40%)pcache1Unpin (16 samples, 0.06%)pthread_mutex_lock (10 samples, 0.04%)pthread_mutex_unlock (6 samples, 0.02%)btreeNext (433 samples, 1.62%)btreeParseCellPtrIndex (87 samples, 0.33%)getCellInfo (131 samples, 0.49%)DYLD-STUB$$memcmp (35 samples, 0.13%)sqlite3BlobCompare (244 samples, 0.91%)_platform_memcmp (110 samples, 0.41%)btreeInitPage (27 samples, 0.10%)decodeFlags (11 samples, 0.04%)DYLD-STUB$$pthread_mutex_lock (3 samples, 0.01%)pcache1FetchStage2 (128 samples, 0.48%)pthread_mutex_lock (4 samples, 0.01%)pcache1Fetch (319 samples, 1.19%)pcacheFetchFinishWithInit (9 samples, 0.03%)pread (8 samples, 0.03%)unixRead (13,871 samples, 51.88%)unixReadpread (13,858 samples, 51.83%)preadreadDbPage (13,936 samples, 52.12%)readDbPagewalFindFrame (5 samples, 0.02%)getPageNormal (14,298 samples, 53.48%)getPageNormalpcache1Fetch (3 samples, 0.01%)unixFetch (3 samples, 0.01%)getPageMMap (14,347 samples, 53.66%)getPageMMapwalFindFrame (19 samples, 0.07%)getAndInitPage (14,399 samples, 53.86%)getAndInitPagegetPageNormal (4 samples, 0.01%)sqlite3BtreeNext (14,610 samples, 54.65%)sqlite3BtreeNextmoveToChild (14,422 samples, 53.94%)moveToChildtorii_erc20::storage::Erc20Storage::get_token_count (17,237 samples, 64.47%)torii_erc20::storage::Erc20Storage::get_token_countrusqlite::statement::Statement::query_row (17,237 samples, 64.47%)rusqlite::statement::Statement::query_rowrusqlite::row::Rows::get_expected_row (17,237 samples, 64.47%)rusqlite::row::Rows::get_expected_rowsqlite3_step (17,237 samples, 64.47%)sqlite3_stepsqlite3VdbeExec (17,145 samples, 64.13%)sqlite3VdbeExecsqlite3MemCompare (109 samples, 0.41%)btreeInitPage (5 samples, 0.02%)pcache1FetchStage2 (54 samples, 0.20%)pcache1Fetch (111 samples, 0.42%)pthread_mutex_unlock (3 samples, 0.01%)unixRead (3,960 samples, 14.81%)unixReadpread (3,955 samples, 14.79%)preadgetPageNormal (4,103 samples, 15.35%)getPageNormalreadDbPage (3,983 samples, 14.90%)readDbPagewalFindFrame (4 samples, 0.01%)getPageMMap (4,116 samples, 15.39%)getPageMMapwalFindFrame (5 samples, 0.02%)getAndInitPage (4,124 samples, 15.42%)getAndInitPagemoveToChild (4,130 samples, 15.45%)moveToChildDYLD-STUB$$pthread_mutex_lock (3 samples, 0.01%)pcache1Unpin (5 samples, 0.02%)pthread_mutex_unlock (3 samples, 0.01%)torii_erc20::storage::Erc20Storage::get_transfer_count (4,148 samples, 15.51%)torii_erc20::storage::Er..rusqlite::statement::Statement::query_row (4,148 samples, 15.51%)rusqlite::statement::Sta..rusqlite::row::Rows::get_expected_row (4,148 samples, 15.51%)rusqlite::row::Rows::get..sqlite3_step (4,148 samples, 15.51%)sqlite3_stepsqlite3VdbeExec (4,148 samples, 15.51%)sqlite3VdbeExecsqlite3BtreeCount (4,147 samples, 15.51%)sqlite3BtreeCountsqlite3BtreeIndexMoveto (3 samples, 0.01%)getAndInitPage (3 samples, 0.01%)getPageMMap (3 samples, 0.01%)getPageNormal (3 samples, 0.01%)readDbPage (3 samples, 0.01%)unixRead (3 samples, 0.01%)pread (3 samples, 0.01%)rusqlite::statement::Statement::execute_with_bound_parameters (14 samples, 0.05%)sqlite3_step (14 samples, 0.05%)sqlite3VdbeExec (14 samples, 0.05%)sqlite3BtreeInsert (10 samples, 0.04%)sqlite3BtreeIndexMoveto (7 samples, 0.03%)getAndInitPage (7 samples, 0.03%)getPageMMap (7 samples, 0.03%)getPageNormal (7 samples, 0.03%)readDbPage (7 samples, 0.03%)unixRead (7 samples, 0.03%)pread (5 samples, 0.02%)torii_erc20::storage::Erc20Storage::insert_approvals_batch (17 samples, 0.06%)rusqlite::transaction::Transaction::commit (3 samples, 0.01%)rusqlite::Connection::execute_batch (3 samples, 0.01%)sqlite3_step (3 samples, 0.01%)sqlite3VdbeExec (3 samples, 0.01%)sqlite3VdbeHalt (3 samples, 0.01%)vdbeCommit (3 samples, 0.01%)sqlite3BtreeCommitPhaseOne (3 samples, 0.01%)sqlite3PagerCommitPhaseOne (3 samples, 0.01%)pagerWalFrames (3 samples, 0.01%)walWriteOneFrame (3 samples, 0.01%)sqlite3BtreeIndexMoveto (31 samples, 0.12%)getAndInitPage (30 samples, 0.11%)getPageMMap (30 samples, 0.11%)getPageNormal (30 samples, 0.11%)readDbPage (29 samples, 0.11%)unixRead (29 samples, 0.11%)pread (29 samples, 0.11%)getAndInitPage (18 samples, 0.07%)getPageMMap (18 samples, 0.07%)getPageNormal (18 samples, 0.07%)readDbPage (17 samples, 0.06%)unixRead (17 samples, 0.06%)pread (15 samples, 0.06%)balance (22 samples, 0.08%)pcache1Fetch (6 samples, 0.02%)pcache1FetchStage2 (6 samples, 0.02%)pcache1Alloc (3 samples, 0.01%)sqlite3Malloc (3 samples, 0.01%)getAndInitPage (46 samples, 0.17%)getPageMMap (46 samples, 0.17%)getPageNormal (46 samples, 0.17%)readDbPage (40 samples, 0.15%)unixRead (40 samples, 0.15%)pread (40 samples, 0.15%)sqlite3BtreeIndexMoveto (61 samples, 0.23%)sqlite3VdbeRecordCompareWithSkip (12 samples, 0.04%)_platform_memcmp (8 samples, 0.03%)sqlite3BtreeInsert (86 samples, 0.32%)rusqlite::statement::Statement::execute_with_bound_parameters (122 samples, 0.46%)sqlite3_step (122 samples, 0.46%)sqlite3VdbeExec (122 samples, 0.46%)unixWrite (17 samples, 0.06%)pwrite (17 samples, 0.06%)pagerWalFrames (21 samples, 0.08%)walWriteOneFrame (21 samples, 0.08%)walEncodeFrame (4 samples, 0.01%)walChecksumBytes (4 samples, 0.01%)sqlite3VdbeExec (22 samples, 0.08%)sqlite3VdbeHalt (22 samples, 0.08%)vdbeCommit (22 samples, 0.08%)sqlite3BtreeCommitPhaseOne (22 samples, 0.08%)sqlite3PagerCommitPhaseOne (22 samples, 0.08%)unixRead (4 samples, 0.01%)pread (4 samples, 0.01%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (23,522 samples, 87.98%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}}<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (23,522 samples, 87.98%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}}torii_erc20::storage::Erc20Storage::insert_transfers_batch (163 samples, 0.61%)rusqlite::transaction::Transaction::commit (41 samples, 0.15%)rusqlite::Connection::execute_batch (41 samples, 0.15%)sqlite3_step (41 samples, 0.15%)sqlite3WalDefaultHook (19 samples, 0.07%)sqlite3_wal_checkpoint_v2 (19 samples, 0.07%)sqlite3BtreeCheckpoint (19 samples, 0.07%)sqlite3WalCheckpoint (19 samples, 0.07%)unixWrite (14 samples, 0.05%)pwrite (14 samples, 0.05%)<deduplicated_symbol> (23,682 samples, 88.58%)<deduplicated_symbol>torii::run::_{{closure}}::_{{closure}} (23,682 samples, 88.58%)torii::run::_{{closure}}::_{{closure}}security_framework::secure_transport::read_func (22 samples, 0.08%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (22 samples, 0.08%)tokio::io::poll_evented::PollEvented<E>::poll_read (21 samples, 0.08%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (21 samples, 0.08%)<&std::net::tcp::TcpStream as std::io::Read>::read (21 samples, 0.08%)__recvfrom (21 samples, 0.08%)SSLDecryptRecord (4 samples, 0.01%)CCSymmAEADDecrypt (4 samples, 0.01%)ccgcm_update (4 samples, 0.01%)ccaes_vng_gcm_decrypt (4 samples, 0.01%)Decrypt_Main_Loop (4 samples, 0.01%)_platform_memmove (7 samples, 0.03%)<deduplicated_symbol> (35 samples, 0.13%)SSLRead (35 samples, 0.13%)SSLRecordReadInternal (35 samples, 0.13%)tls_record_decrypt (13 samples, 0.05%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (37 samples, 0.14%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (37 samples, 0.14%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (41 samples, 0.15%)hyper::proto::h1::decode::Decoder::decode (41 samples, 0.15%)<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (41 samples, 0.15%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (41 samples, 0.15%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.01%)_xzm_xzone_malloc_small_freelist (4 samples, 0.01%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (42 samples, 0.16%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (42 samples, 0.16%)<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (42 samples, 0.16%)hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (42 samples, 0.16%)all (26,736 samples, 100%)thread_start (24,728 samples, 92.49%)thread_start_pthread_start (24,728 samples, 92.49%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (24,728 samples, 92.49%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (24,728 samples, 92.49%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (24,725 samples, 92.48%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (23,740 samples, 88.79%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (23,740 samples, 88.79%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (23,740 samples, 88.79%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (23,740 samples, 88.79%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (23,735 samples, 88.78%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (23,735 samples, 88.78%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (23,735 samples, 88.78%)tokio::runtime::context::scoped::Scoped<T>::settokio::runtime::scheduler::multi_thread::worker::Context::run (23,735 samples, 88.78%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::Context::run_task (23,726 samples, 88.74%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::task::harness::Harness<T,S>::poll (23,725 samples, 88.74%)tokio::runtime::task::harness::Harness<T,S>::poll \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-1.svg b/bins/torii-tokens/flamegraph-1.svg new file mode 100644 index 0000000..f3977d1 --- /dev/null +++ b/bins/torii-tokens/flamegraph-1.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch qos_class_main (275 samples, 0.06%)start_wqthread (275 samples, 0.06%)__psynch_cvwait (71 samples, 0.02%)tokio::runtime::park::Inner::park (96 samples, 0.02%)parking_lot::condvar::Condvar::wait_until_internal (85 samples, 0.02%)_pthread_cond_wait (79 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (125 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (265 samples, 0.06%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (248 samples, 0.05%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (347 samples, 0.08%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (316 samples, 0.07%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (364 samples, 0.08%)_realloc (51 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (58 samples, 0.01%)alloc::raw_vec::finish_grow (57 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (75 samples, 0.02%)alloc::fmt::format::format_inner (98 samples, 0.02%)core::fmt::write (85 samples, 0.02%)_xzm_free (77 samples, 0.02%)sqlite3ValueFree (192 samples, 0.04%)vdbeMemClear (85 samples, 0.02%)sqlite3DbFreeNN (67 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (212 samples, 0.05%)core::ptr::drop_in_place<sqlx_sqlite::row::SqliteRow> (316 samples, 0.07%)core::hash::BuildHasher::hash_one (55 samples, 0.01%)core::hash::BuildHasher::hash_one (52 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (196 samples, 0.04%)hashbrown::raw::RawTable<T,A>::reserve_rehash (100 samples, 0.02%)sqlx_sqlite::types::str::_<impl sqlx_core::decode::Decode<sqlx_sqlite::database::Sqlite> for alloc::string::String>::decode (65 samples, 0.01%)sqlx_core::row::Row::try_get (88 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (757 samples, 0.16%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (753 samples, 0.16%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (737 samples, 0.16%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (398 samples, 0.09%)getPageNormal (1,599 samples, 0.35%)readDbPage (1,555 samples, 0.34%)unixRead (1,546 samples, 0.33%)pread (1,545 samples, 0.33%)moveToChild (1,620 samples, 0.35%)getAndInitPage (1,615 samples, 0.35%)getPageMMap (1,606 samples, 0.35%)torii_erc20::storage::Erc20Storage::get_approval_count (1,628 samples, 0.35%)rusqlite::statement::Statement::query_row (1,628 samples, 0.35%)rusqlite::row::Rows::get_expected_row (1,628 samples, 0.35%)sqlite3_step (1,628 samples, 0.35%)sqlite3VdbeExec (1,628 samples, 0.35%)sqlite3BtreeCount (1,628 samples, 0.35%)pcache1FetchStage2 (51 samples, 0.01%)pcache1Fetch (104 samples, 0.02%)unixRead (3,702 samples, 0.80%)pread (3,692 samples, 0.80%)readDbPage (3,716 samples, 0.80%)getPageNormal (3,832 samples, 0.83%)getPageMMap (3,849 samples, 0.83%)moveToChild (3,866 samples, 0.84%)getAndInitPage (3,863 samples, 0.84%)torii_erc20::sink::Erc20Sink::new (5,504 samples, 1.19%)torii_erc20::storage::Erc20Storage::get_transfer_count (3,876 samples, 0.84%)rusqlite::statement::Statement::query_row (3,876 samples, 0.84%)rusqlite::row::Rows::get_expected_row (3,875 samples, 0.84%)sqlite3_step (3,875 samples, 0.84%)sqlite3VdbeExec (3,875 samples, 0.84%)sqlite3BtreeCount (3,875 samples, 0.84%)unixRead (90 samples, 0.02%)pread (90 samples, 0.02%)moveToChild (103 samples, 0.02%)getAndInitPage (103 samples, 0.02%)getPageMMap (100 samples, 0.02%)getPageNormal (100 samples, 0.02%)readDbPage (91 samples, 0.02%)torii_erc721::sink::Erc721Sink::new (104 samples, 0.02%)torii_erc721::storage::Erc721Storage::get_transfer_count (104 samples, 0.02%)rusqlite::statement::Statement::query_row (104 samples, 0.02%)<rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance (104 samples, 0.02%)sqlite3_step (104 samples, 0.02%)sqlite3VdbeExec (104 samples, 0.02%)sqlite3BtreeCount (104 samples, 0.02%)start (7,630 samples, 1.65%)main (7,626 samples, 1.65%)std::rt::lang_start_internal (7,626 samples, 1.65%)std::rt::lang_start::_{{closure}} (7,626 samples, 1.65%)std::sys::backtrace::__rust_begin_short_backtrace (7,626 samples, 1.65%)torii_tokens::main (7,626 samples, 1.65%)tokio::runtime::park::CachedParkThread::block_on (7,625 samples, 1.65%)torii_tokens::run_indexer::_{{closure}} (7,508 samples, 1.62%)_dispatch_client_callout (49 samples, 0.01%)<deduplicated_symbol> (53 samples, 0.01%)_dispatch_root_queue_poke_slow (55 samples, 0.01%)_pthread_workqueue_addthreads (55 samples, 0.01%)__workq_kernreturn (51 samples, 0.01%)_dispatch_root_queue_drain (135 samples, 0.03%)_dispatch_worker_thread2 (151 samples, 0.03%)start_wqthread (153 samples, 0.03%)_pthread_wqthread (153 samples, 0.03%)_dispatch_semaphore_wait_slow (119 samples, 0.03%)_dispatch_sema4_wait (109 samples, 0.02%)semaphore_wait_trap (103 samples, 0.02%)<flume::IntoIter<T> as core::iter::traits::iterator::Iterator>::next (203 samples, 0.04%)std::thread::park (128 samples, 0.03%)sqlite3MemMalloc (64 samples, 0.01%)sqlite3Malloc (151 samples, 0.03%)sqlite3Malloc (89 samples, 0.02%)sqlite3VdbeMemMakeWriteable (154 samples, 0.03%)vdbeMemAddTerminator (144 samples, 0.03%)sqlite3VdbeMemGrow (138 samples, 0.03%)sqlx_sqlite::row::SqliteRow::current (422 samples, 0.09%)sqlite3_value_dup (316 samples, 0.07%)unixRead (53 samples, 0.01%)pread (52 samples, 0.01%)getPageNormal (77 samples, 0.02%)readDbPage (59 samples, 0.01%)pcache1Truncate (67 samples, 0.01%)pcache1TruncateUnsafe (65 samples, 0.01%)fcntl (94 samples, 0.02%)__fcntl (92 samples, 0.02%)unixShmLock (98 samples, 0.02%)sqlite3PagerSharedLock (178 samples, 0.04%)walTryBeginRead (106 samples, 0.02%)btreeBeginTrans (277 samples, 0.06%)moveToChild (53 samples, 0.01%)getAndInitPage (52 samples, 0.01%)getPageNormal (51 samples, 0.01%)btreeLast (95 samples, 0.02%)unixRead (542 samples, 0.12%)pread (542 samples, 0.12%)getAndInitPage (557 samples, 0.12%)getPageNormal (554 samples, 0.12%)readDbPage (545 samples, 0.12%)sqlite3BtreeIndexMoveto (610 samples, 0.13%)getAndInitPage (103 samples, 0.02%)getPageNormal (103 samples, 0.02%)readDbPage (100 samples, 0.02%)unixRead (100 samples, 0.02%)pread (100 samples, 0.02%)balance (118 samples, 0.03%)sqlite3BtreeInsert (132 samples, 0.03%)sqlite3BtreeNext (147 samples, 0.03%)moveToChild (142 samples, 0.03%)getAndInitPage (142 samples, 0.03%)getPageNormal (142 samples, 0.03%)readDbPage (138 samples, 0.03%)unixRead (137 samples, 0.03%)pread (136 samples, 0.03%)unixSync (203 samples, 0.04%)fsync (203 samples, 0.04%)unixWrite (396 samples, 0.09%)pwrite (395 samples, 0.09%)pagerWalFrames (632 samples, 0.14%)walWriteOneFrame (420 samples, 0.09%)sqlite3BtreeCommitPhaseOne (646 samples, 0.14%)sqlite3PagerCommitPhaseOne (646 samples, 0.14%)pager_end_transaction (48 samples, 0.01%)sqlite3VdbeHalt (740 samples, 0.16%)vdbeCommit (720 samples, 0.16%)sqlite3BtreeCommitPhaseTwo (68 samples, 0.01%)sqlite3VdbeExec (2,202 samples, 0.48%)unixRead (53 samples, 0.01%)pread (53 samples, 0.01%)unixSync (67 samples, 0.01%)fsync (67 samples, 0.01%)sqlx_sqlite::statement::handle::StatementHandle::step (2,583 samples, 0.56%)sqlite3_step (2,581 samples, 0.56%)sqlite3WalDefaultHook (371 samples, 0.08%)sqlite3_wal_checkpoint_v2 (371 samples, 0.08%)sqlite3BtreeCheckpoint (371 samples, 0.08%)sqlite3WalCheckpoint (371 samples, 0.08%)unixWrite (240 samples, 0.05%)pwrite (239 samples, 0.05%)<sqlx_sqlite::connection::execute::ExecuteIter as core::iter::traits::iterator::Iterator>::next (3,047 samples, 0.66%)__psynch_cvsignal (174 samples, 0.04%)pthread_cond_signal (175 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (202 samples, 0.04%)<flume::async::AsyncSignal as flume::signal::Signal>::fire (255 samples, 0.06%)flume::Sender<T>::send (339 samples, 0.07%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (48 samples, 0.01%)tokio::runtime::context::with_scheduler (48 samples, 0.01%)futures_channel::oneshot::Sender<T>::send (56 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (51 samples, 0.01%)__psynch_cvwait (101 samples, 0.02%)_pthread_cond_wait (126 samples, 0.03%)parking_lot::condvar::Condvar::wait_until_internal (141 samples, 0.03%)-[OS_xpc_object dealloc] (64 samples, 0.01%)_xpc_dictionary_node_free (76 samples, 0.02%)_xpc_dictionary_dispose (96 samples, 0.02%)-[OS_xpc_object dealloc] (101 samples, 0.02%)_objc_rootDealloc (112 samples, 0.02%)objc_destructInstance_nonnull_realized(objc_object*) (112 samples, 0.02%)object_cxxDestructFromClass(objc_object*, objc_class*) (111 samples, 0.02%)-[NWConcrete_nw_resolver_config .cxx_destruct] (111 samples, 0.02%)-[NWConcrete_nw_resolver_config dealloc] (118 samples, 0.03%)UnsafeMutablePointer.deinitialize(count:) (163 samples, 0.04%)swift_arrayDestroy (162 samples, 0.04%)0x247521778 (164 samples, 0.04%)0x2475216d4 (166 samples, 0.04%)0x24752183c (169 samples, 0.04%)_swift_release_dealloc (183 samples, 0.04%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (190 samples, 0.04%)0x1960b771c (198 samples, 0.04%)swift_cvw_destroyImpl(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) (197 samples, 0.04%)0x1963726ac (204 samples, 0.04%)_objc_rootDealloc (206 samples, 0.04%)objc_destructInstance_nonnull_realized(objc_object*) (205 samples, 0.04%)object_cxxDestructFromClass(objc_object*, objc_class*) (205 samples, 0.04%)0x196372684 (211 samples, 0.05%)0x1963725ec (211 samples, 0.05%)-[NWConcrete_nw_path_evaluator .cxx_destruct] (219 samples, 0.05%)_objc_rootDealloc (255 samples, 0.06%)objc_destructInstance_nonnull_realized(objc_object*) (253 samples, 0.05%)object_cxxDestructFromClass(objc_object*, objc_class*) (252 samples, 0.05%)necp_client_action (169 samples, 0.04%)-[NWConcrete_nw_path_evaluator dealloc] (444 samples, 0.10%)0x195fee974 (59 samples, 0.01%)_nw_parameters_createTm (116 samples, 0.03%)nw_path_create_evaluator_for_endpoint_no_evaluate (159 samples, 0.03%)0x1963737e8 (52 samples, 0.01%)necp_client_action (3,028 samples, 0.65%)nw_path_evaluator_add_endpoint_to_necp_message (81 samples, 0.02%)nw_path_struct_size_for_endpoint_and_metadata (81 samples, 0.02%)nw_path_create_necp_parameters (963 samples, 0.21%)0x19637d598 (48 samples, 0.01%)_nw_path_add_necp_result_netagent (56 samples, 0.01%)nw_path_copy_endpoint_from_tlv (52 samples, 0.01%)nw_path_parse_necp_result (213 samples, 0.05%)0x1960ac09c (67 samples, 0.01%)nw_path_copy_interface_with_generation (81 samples, 0.02%)0x1960ad2d4 (88 samples, 0.02%)_StringGuts.prepareForAppendInPlace(totalCount:otherUTF8Count:) (63 samples, 0.01%)_StringGuts.append(_:) (93 samples, 0.02%)0x1961f7350 (202 samples, 0.04%)_Block_release (59 samples, 0.01%)0x1961f5688 (70 samples, 0.02%)0x1960b3ed0 (78 samples, 0.02%)0x1960b1134 (86 samples, 0.02%)0x1960b7780 (84 samples, 0.02%)0x1960b783c (82 samples, 0.02%)nw_path_access_agent_cache (150 samples, 0.03%)_xpc_dictionary_insert (51 samples, 0.01%)_xpc_plist_collapse_stack (155 samples, 0.03%)xpc_create_from_plist_with_string_cache (337 samples, 0.07%)nw_path_bridge_config_agent_dns_copy_resolver_config (380 samples, 0.08%)0x1960ada20 (1,093 samples, 0.24%)0x1960a871c (69 samples, 0.01%)0x1960a7f90 (114 samples, 0.02%)0x1960af8b4 (222 samples, 0.05%)0x1960b0b10 (50 samples, 0.01%)0x1960b207c (58 samples, 0.01%)nw_path_snapshot_path(NWConcrete_nw_path*) (1,534 samples, 0.33%)_nw_path_update_is_viableTm (1,534 samples, 0.33%)0x1960ad66c (1,534 samples, 0.33%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (5,870 samples, 1.27%)nw_path_create_evaluator_for_endpoint (6,035 samples, 1.31%)nw_nat64_v4_address_requires_synthesis (6,552 samples, 1.42%)_gai_nat64_second_pass (6,560 samples, 1.42%)_isort (108 samples, 0.02%)si_destination_compare (103 samples, 0.02%)si_destination_lookup (85 samples, 0.02%)_gai_sort_list (112 samples, 0.02%)_xpc_dictionary_dispose (47 samples, 0.01%)-[OS_xpc_object dealloc] (55 samples, 0.01%)_objc_rootDealloc (60 samples, 0.01%)objc_destructInstance_nonnull_realized(objc_object*) (60 samples, 0.01%)object_cxxDestructFromClass(objc_object*, objc_class*) (60 samples, 0.01%)-[NWConcrete_nw_resolver_config .cxx_destruct] (59 samples, 0.01%)-[NWConcrete_nw_resolver_config dealloc] (65 samples, 0.01%)0x2475216d4 (89 samples, 0.02%)0x247521778 (87 samples, 0.02%)UnsafeMutablePointer.deinitialize(count:) (86 samples, 0.02%)swift_arrayDestroy (86 samples, 0.02%)0x24752183c (90 samples, 0.02%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (106 samples, 0.02%)_swift_release_dealloc (103 samples, 0.02%)0x1960b771c (111 samples, 0.02%)swift_cvw_destroyImpl(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) (111 samples, 0.02%)_objc_rootDealloc (116 samples, 0.03%)objc_destructInstance_nonnull_realized(objc_object*) (115 samples, 0.02%)object_cxxDestructFromClass(objc_object*, objc_class*) (114 samples, 0.02%)0x1963726ac (114 samples, 0.02%)0x196372684 (125 samples, 0.03%)0x1963725ec (124 samples, 0.03%)-[NWConcrete_nw_path_evaluator .cxx_destruct] (128 samples, 0.03%)_objc_rootDealloc (133 samples, 0.03%)objc_destructInstance_nonnull_realized(objc_object*) (133 samples, 0.03%)object_cxxDestructFromClass(objc_object*, objc_class*) (132 samples, 0.03%)necp_client_action (76 samples, 0.02%)-[NWConcrete_nw_path_evaluator dealloc] (226 samples, 0.05%)0x1961e5eac (55 samples, 0.01%)0x1961e7ea4 (122 samples, 0.03%)getaddrinfo (71 samples, 0.02%)nw_utilities_port_for_string (88 samples, 0.02%)0x1961e7d5c (213 samples, 0.05%)0x196019c4c (51 samples, 0.01%)0x1961eea5c (55 samples, 0.01%)0x195fee974 (60 samples, 0.01%)0x195ff2268 (102 samples, 0.02%)_nw_parameters_create_legacy_tcp_socket (157 samples, 0.03%)0x196305ff0 (153 samples, 0.03%)0x195ff372c (94 samples, 0.02%)0x1962ff44c (100 samples, 0.02%)0x1962ff3e0 (114 samples, 0.02%)0x1960a42f8 (88 samples, 0.02%)0x196372770 (92 samples, 0.02%)0x196372704 (95 samples, 0.02%)_os_log_fmt_flatten_NSCF (260 samples, 0.06%)_NS_os_log_callback (259 samples, 0.06%)_os_log_fmt_flatten_object_impl (298 samples, 0.06%)_os_log_impl (365 samples, 0.08%)_os_log (365 samples, 0.08%)_os_log_impl_flatten_and_send (364 samples, 0.08%)nw_path_create_evaluator_for_endpoint_no_evaluate (96 samples, 0.02%)necp_client_action (2,344 samples, 0.51%)_nw_endpoint_get_device_idTm (62 samples, 0.01%)nw_path_evaluator_add_endpoint_to_necp_message (55 samples, 0.01%)nw_path_struct_size_for_endpoint_and_metadata (61 samples, 0.01%)nw_path_create_necp_parameters (795 samples, 0.17%)0x195ffc69c (49 samples, 0.01%)0x19637d598 (53 samples, 0.01%)_nw_path_add_necp_result_netagent (62 samples, 0.01%)nw_path_parse_necp_result (205 samples, 0.04%)0x1960ac09c (47 samples, 0.01%)nw_path_copy_interface_with_generation (70 samples, 0.02%)0x1960ad2d4 (75 samples, 0.02%)0x1961f7350 (133 samples, 0.03%)nw_path_access_agent_cache (55 samples, 0.01%)_xpc_plist_collapse_stack (60 samples, 0.01%)xpc_create_from_plist_with_string_cache (132 samples, 0.03%)nw_path_bridge_config_agent_dns_copy_resolver_config (157 samples, 0.03%)0x1960ada20 (530 samples, 0.11%)0x1960a7f90 (57 samples, 0.01%)0x1960af8b4 (109 samples, 0.02%)0x1960ad66c (804 samples, 0.17%)nw_path_snapshot_path(NWConcrete_nw_path*) (808 samples, 0.17%)_nw_path_update_is_viableTm (807 samples, 0.17%)nw_path_create_evaluator_for_endpoint (4,367 samples, 0.94%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (4,266 samples, 0.92%)nw_path_libinfo_path_check (5,490 samples, 1.19%)__select_nocancel (169 samples, 0.04%)_mdns_hostent_append_alias (48 samples, 0.01%)_mdns_query_callback (215 samples, 0.05%)kevent (119 samples, 0.03%)handle_query_response (226 samples, 0.05%)DNSServiceProcessResult (885 samples, 0.19%)read_all (458 samples, 0.10%)__recvfrom_nocancel (456 samples, 0.10%)__close_nocancel (87 samples, 0.02%)__sendto_nocancel (100 samples, 0.02%)DNSServiceRefDeallocate (120 samples, 0.03%)write_all (104 samples, 0.02%)_mdns_query_clear (124 samples, 0.03%)__close_nocancel (540 samples, 0.12%)__select_nocancel (317 samples, 0.07%)__sendmsg_nocancel (472 samples, 0.10%)__socketpair (239 samples, 0.05%)__recvfrom_nocancel (139 samples, 0.03%)read_all (149 samples, 0.03%)setsockopt (92 samples, 0.02%)write_all (272 samples, 0.06%)__sendto_nocancel (271 samples, 0.06%)deliver_request (2,109 samples, 0.46%)DNSServiceQueryRecordInternal (2,147 samples, 0.46%)_mdns_query_start (2,162 samples, 0.47%)_pthread_mutex_firstfit_lock_slow (103 samples, 0.02%)_pthread_mutex_firstfit_lock_wait (103 samples, 0.02%)__psynch_mutexwait (100 samples, 0.02%)_pthread_mutex_firstfit_unlock_slow (58 samples, 0.01%)_pthread_mutex_firstfit_wake (57 samples, 0.01%)__psynch_mutexdrop (57 samples, 0.01%)kevent (266 samples, 0.06%)kqueue (63 samples, 0.01%)_mdns_search_ex (3,823 samples, 0.83%)si_addrinfo_list (71 samples, 0.02%)si_addrinfo_list_from_hostent (87 samples, 0.02%)mdns_addrinfo (3,933 samples, 0.85%)search_addrinfo (3,938 samples, 0.85%)si_addrinfo (16,137 samples, 3.49%)si_..<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (16,170 samples, 3.50%)<st..getaddrinfo (16,169 samples, 3.50%)get..<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (16,195 samples, 3.50%)<(&..mach_absolute_time (545 samples, 0.12%)clock_gettime_nsec_np (601 samples, 0.13%)std::sys::pal::unix::time::Timespec::now (644 samples, 0.14%)clock_gettime (627 samples, 0.14%)mach_absolute_time (144 samples, 0.03%)clock_gettime_nsec_np (168 samples, 0.04%)std::sys::pal::unix::time::Timespec::now (182 samples, 0.04%)clock_gettime (176 samples, 0.04%)std::time::Instant::elapsed (191 samples, 0.04%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (167 samples, 0.04%)__psynch_cvwait (1,841 samples, 0.40%)_pthread_cond_wait (1,939 samples, 0.42%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (2,143 samples, 0.46%)parking_lot::condvar::Condvar::wait_until_internal (2,060 samples, 0.45%)mach_absolute_time (196 samples, 0.04%)std::sys::pal::unix::time::Timespec::now (341 samples, 0.07%)clock_gettime (308 samples, 0.07%)clock_gettime_nsec_np (279 samples, 0.06%)mio::poll::Poll::poll (4,542 samples, 0.98%)kevent (4,495 samples, 0.97%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (140 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (100 samples, 0.02%)tokio::runtime::io::driver::Driver::turn (4,869 samples, 1.05%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (115 samples, 0.02%)tokio::runtime::time::wheel::Wheel::poll (67 samples, 0.01%)tokio::runtime::time::wheel::Wheel::next_expiration (47 samples, 0.01%)tokio::runtime::time::Driver::park_internal (5,505 samples, 1.19%)tokio::runtime::scheduler::multi_thread::park::Parker::park (5,645 samples, 1.22%)mio::poll::Poll::poll (65 samples, 0.01%)kevent (63 samples, 0.01%)tokio::runtime::io::driver::Driver::turn (68 samples, 0.01%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (87 samples, 0.02%)tokio::runtime::time::Driver::park_internal (85 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (7,974 samples, 1.72%)<deduplicated_symbol> (274 samples, 0.06%)mio::waker::Waker::wake (255 samples, 0.06%)kevent (254 samples, 0.05%)__psynch_cvsignal (632 samples, 0.14%)pthread_cond_signal (641 samples, 0.14%)mach_absolute_time (59 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (724 samples, 0.16%)std::sys::pal::unix::time::Timespec::now (61 samples, 0.01%)clock_gettime (61 samples, 0.01%)clock_gettime_nsec_np (61 samples, 0.01%)_platform_memmove (57 samples, 0.01%)core::ptr::drop_in_place<torii_common::token_uri::TokenUriService::run<torii_erc721::storage::Erc721Storage>::{{closure}}::{{closure}}> (87 samples, 0.02%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (53 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (47 samples, 0.01%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (47 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (47 samples, 0.01%)_xzm_free (126 samples, 0.03%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (175 samples, 0.04%)<deduplicated_symbol> (50 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (156 samples, 0.03%)core::hash::BuildHasher::hash_one (284 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (242 samples, 0.05%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (125 samples, 0.03%)_malloc_zone_realloc (47 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (61 samples, 0.01%)alloc::raw_vec::finish_grow (59 samples, 0.01%)_realloc (59 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (71 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (144 samples, 0.03%)core::fmt::write (132 samples, 0.03%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (121 samples, 0.03%)core::fmt::write (219 samples, 0.05%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (195 samples, 0.04%)core::fmt::write (148 samples, 0.03%)alloc::fmt::format::format_inner (225 samples, 0.05%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (291 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (58 samples, 0.01%)alloc::raw_vec::finish_grow (56 samples, 0.01%)_realloc (53 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (79 samples, 0.02%)_malloc_zone_realloc (121 samples, 0.03%)xzm_realloc (100 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (157 samples, 0.03%)alloc::raw_vec::finish_grow (146 samples, 0.03%)_realloc (139 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (218 samples, 0.05%)_xzm_free (49 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (62 samples, 0.01%)core::fmt::Formatter::pad_integral (65 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (48 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (71 samples, 0.02%)_xzm_free (84 samples, 0.02%)_xzm_xzone_malloc_tiny (67 samples, 0.01%)_malloc_zone_realloc (315 samples, 0.07%)xzm_realloc (277 samples, 0.06%)xzm_malloc_zone_size (60 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (450 samples, 0.10%)alloc::raw_vec::finish_grow (428 samples, 0.09%)_realloc (405 samples, 0.09%)<alloc::string::String as core::fmt::Write>::write_str (507 samples, 0.11%)<alloc::string::String as core::fmt::Write>::write_str (75 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (56 samples, 0.01%)alloc::raw_vec::finish_grow (51 samples, 0.01%)_realloc (49 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1,051 samples, 0.23%)core::fmt::write (968 samples, 0.21%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (867 samples, 0.19%)core::fmt::Formatter::pad_integral (107 samples, 0.02%)core::fmt::write (1,084 samples, 0.23%)core::fmt::write (1,664 samples, 0.36%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1,507 samples, 0.33%)alloc::fmt::format::format_inner (1,754 samples, 0.38%)core::hash::BuildHasher::hash_one (62 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (125 samples, 0.03%)std::sys::pal::unix::time::Timespec::now (98 samples, 0.02%)clock_gettime (96 samples, 0.02%)gettimeofday (91 samples, 0.02%)__commpage_gettimeofday_internal (89 samples, 0.02%)mach_absolute_time (88 samples, 0.02%)chrono::offset::utc::Utc::now (100 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (2,591 samples, 0.56%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (2,219 samples, 0.48%)torii::etl::envelope::Envelope::new (117 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (50 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (61 samples, 0.01%)_malloc_zone_realloc (96 samples, 0.02%)xzm_realloc (88 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (139 samples, 0.03%)alloc::raw_vec::finish_grow (128 samples, 0.03%)_realloc (123 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (158 samples, 0.03%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (286 samples, 0.06%)core::fmt::write (259 samples, 0.06%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (240 samples, 0.05%)core::fmt::write (293 samples, 0.06%)core::fmt::write (422 samples, 0.09%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (387 samples, 0.08%)alloc::fmt::format::format_inner (437 samples, 0.09%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (615 samples, 0.13%)torii::etl::envelope::Envelope::new (53 samples, 0.01%)_xzm_free (48 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (57 samples, 0.01%)alloc::raw_vec::finish_grow (51 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (4,735 samples, 1.02%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (3,447 samples, 0.75%)_free (56 samples, 0.01%)_malloc_zone_malloc (118 samples, 0.03%)_xzm_free (176 samples, 0.04%)core::hash::BuildHasher::hash_one (65 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (5,831 samples, 1.26%)_xzm_free (87 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (161 samples, 0.03%)<deduplicated_symbol> (827 samples, 0.18%)mio::waker::Waker::wake (819 samples, 0.18%)kevent (811 samples, 0.18%)__psynch_cvsignal (522 samples, 0.11%)pthread_cond_signal (536 samples, 0.12%)parking_lot::condvar::Condvar::notify_one_slow (595 samples, 0.13%)tokio::runtime::context::with_scheduler (1,478 samples, 0.32%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1,481 samples, 0.32%)futures_channel::mpsc::Receiver<T>::next_message (1,716 samples, 0.37%)tokio::runtime::task::waker::wake_by_val (1,499 samples, 0.32%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1,751 samples, 0.38%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (1,789 samples, 0.39%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1,813 samples, 0.39%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1,855 samples, 0.40%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (1,899 samples, 0.41%)_platform_memmove (1,020 samples, 0.22%)encoding_rs::Encoding::decode_without_bom_handling (941 samples, 0.20%)encoding_rs::utf_8::utf8_valid_up_to (938 samples, 0.20%)_platform_memmove (1,679 samples, 0.36%)_xzm_free (63 samples, 0.01%)_xzm_free_outlined (82 samples, 0.02%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (2,078 samples, 0.45%)bytes::bytes_mut::shared_v_drop (228 samples, 0.05%)http_body_util::collected::Collected<B>::to_bytes (2,082 samples, 0.45%)reqwest::async_impl::response::Response::text::_{{closure}} (5,999 samples, 1.30%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (51 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (69 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (56 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (192 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (210 samples, 0.05%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (131 samples, 0.03%)<deduplicated_symbol> (273 samples, 0.06%)DYLD-STUB$$malloc (61 samples, 0.01%)DYLD-STUB$$memcpy (90 samples, 0.02%)__rustc::__rdl_alloc (162 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (55 samples, 0.01%)_malloc_zone_malloc (374 samples, 0.08%)_platform_memmove (669 samples, 0.14%)_xzm_xzone_malloc (482 samples, 0.10%)_xzm_xzone_thread_cache_fill_and_malloc (72 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (58 samples, 0.01%)xzm_chunk_mark_used (51 samples, 0.01%)_xzm_reclaim_mark_used (50 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2,626 samples, 0.57%)<deduplicated_symbol> (63 samples, 0.01%)_malloc_zone_malloc (96 samples, 0.02%)_platform_memmove (61 samples, 0.01%)_xzm_free (53 samples, 0.01%)_xzm_xzone_malloc_tiny (109 samples, 0.02%)_malloc_zone_realloc (402 samples, 0.09%)xzm_realloc (374 samples, 0.08%)_realloc (458 samples, 0.10%)_xzm_xzone_malloc (110 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (71 samples, 0.02%)xzm_chunk_mark_used (61 samples, 0.01%)_xzm_reclaim_mark_used (60 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (89 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1,059 samples, 0.23%)alloc::raw_vec::finish_grow (957 samples, 0.21%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4,438 samples, 0.96%)<deduplicated_symbol> (93 samples, 0.02%)_malloc_zone_malloc (92 samples, 0.02%)_platform_memmove (96 samples, 0.02%)_xzm_xzone_malloc (97 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (545 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (78 samples, 0.02%)<deduplicated_symbol> (70 samples, 0.02%)<deduplicated_symbol> (240 samples, 0.05%)DYLD-STUB$$memcpy (79 samples, 0.02%)__rustc::__rdl_alloc (137 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (66 samples, 0.01%)_malloc_zone_malloc (297 samples, 0.06%)_platform_memmove (253 samples, 0.05%)_xzm_xzone_malloc (375 samples, 0.08%)_xzm_reclaim_mark_used_locked (63 samples, 0.01%)mach_vm_reclaim_try_cancel (63 samples, 0.01%)mach_absolute_time (57 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (158 samples, 0.03%)xzm_chunk_mark_used (147 samples, 0.03%)_xzm_reclaim_mark_used (146 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting (83 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (78 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (185 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,975 samples, 0.43%)_malloc_zone_malloc (97 samples, 0.02%)_platform_memmove (81 samples, 0.02%)_xzm_xzone_malloc (111 samples, 0.02%)_xzm_reclaim_mark_used (54 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (58 samples, 0.01%)xzm_chunk_mark_used (57 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (76 samples, 0.02%)<deduplicated_symbol> (66 samples, 0.01%)_malloc_zone_malloc (92 samples, 0.02%)_realloc (56 samples, 0.01%)_xzm_xzone_malloc (135 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (71 samples, 0.02%)xzm_chunk_mark_used (65 samples, 0.01%)_xzm_reclaim_mark_used (65 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (97 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (705 samples, 0.15%)alloc::raw_vec::finish_grow (602 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3,942 samples, 0.85%)<deduplicated_symbol> (147 samples, 0.03%)_malloc_zone_malloc (172 samples, 0.04%)_platform_memmove (251 samples, 0.05%)_xzm_xzone_malloc (364 samples, 0.08%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1,225 samples, 0.26%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5,357 samples, 1.16%)DYLD-STUB$$memcmp (54 samples, 0.01%)_platform_memcmp (167 samples, 0.04%)<deduplicated_symbol> (87 samples, 0.02%)_malloc_zone_malloc (102 samples, 0.02%)_xzm_xzone_malloc (77 samples, 0.02%)_xzm_reclaim_mark_used_locked (166 samples, 0.04%)mach_vm_reclaim_try_cancel (164 samples, 0.04%)mach_absolute_time (146 samples, 0.03%)_xzm_reclaim_mark_used (471 samples, 0.10%)mach_vm_reclaim_update_kernel_accounting (303 samples, 0.07%)mach_vm_reclaim_update_kernel_accounting_trap (274 samples, 0.06%)xzm_chunk_mark_used (484 samples, 0.10%)_xzm_xzone_find_and_malloc_from_freelist_chunk (512 samples, 0.11%)_xzm_xzone_malloc_freelist_outlined (601 samples, 0.13%)_xzm_xzone_malloc_tiny (269 samples, 0.06%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (257 samples, 0.06%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1,710 samples, 0.37%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2,499 samples, 0.54%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (94 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (67 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (13,275 samples, 2.87%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13,700 samples, 2.96%)<se..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (111 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (55 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (88 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (121 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (258 samples, 0.06%)_platform_memmove (71 samples, 0.02%)_malloc_zone_realloc (187 samples, 0.04%)xzm_realloc (176 samples, 0.04%)_realloc (207 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (251 samples, 0.05%)alloc::raw_vec::finish_grow (225 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (14,454 samples, 3.13%)<se..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (14,605 samples, 3.16%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (135 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (80 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (223 samples, 0.05%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (15,106 samples, 3.27%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (15,126 samples, 3.27%)<se..<deduplicated_symbol> (327 samples, 0.07%)DYLD-STUB$$malloc (62 samples, 0.01%)DYLD-STUB$$memcpy (114 samples, 0.02%)__rustc::__rdl_alloc (176 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (58 samples, 0.01%)_malloc_zone_malloc (455 samples, 0.10%)_platform_memmove (631 samples, 0.14%)_xzm_xzone_malloc (561 samples, 0.12%)_xzm_reclaim_mark_used_locked (57 samples, 0.01%)mach_vm_reclaim_try_cancel (55 samples, 0.01%)mach_absolute_time (50 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (150 samples, 0.03%)xzm_chunk_mark_used (121 samples, 0.03%)_xzm_reclaim_mark_used (114 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (57 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (55 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (167 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2,919 samples, 0.63%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (82 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (54 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (63 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (214 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (243 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (81 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (149 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (50 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (47 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (125 samples, 0.03%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (155 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (399 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (443 samples, 0.10%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (47 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (499 samples, 0.11%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (70 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (51 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (842 samples, 0.18%)_platform_memmove (305 samples, 0.07%)_xzm_free (84 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (94 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (74 samples, 0.02%)xzm_chunk_mark_used (52 samples, 0.01%)_xzm_reclaim_mark_used (51 samples, 0.01%)_xzm_xzone_malloc_tiny (76 samples, 0.02%)_malloc_zone_realloc (725 samples, 0.16%)xzm_realloc (698 samples, 0.15%)_realloc (786 samples, 0.17%)alloc::raw_vec::RawVec<T,A>::grow_one (872 samples, 0.19%)alloc::raw_vec::finish_grow (836 samples, 0.18%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5,552 samples, 1.20%)<deduplicated_symbol> (70 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (258 samples, 0.06%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5,833 samples, 1.26%)DYLD-STUB$$memcmp (47 samples, 0.01%)_platform_memcmp (150 samples, 0.03%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (164 samples, 0.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (257 samples, 0.06%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (597 samples, 0.13%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6,582 samples, 1.42%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6,609 samples, 1.43%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (6,640 samples, 1.44%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (119 samples, 0.03%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (52 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (21,947 samples, 4.75%)<serde..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (140 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (21,962 samples, 4.75%)<serde..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (59 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22,068 samples, 4.77%)<serde..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (22,098 samples, 4.78%)<serde..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (83 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (22,196 samples, 4.80%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22,208 samples, 4.80%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22,201 samples, 4.80%)<serde.._xzm_free (114 samples, 0.02%)DYLD-STUB$$free (50 samples, 0.01%)_free (103 samples, 0.02%)_xzm_free (406 samples, 0.09%)_platform_memset (51 samples, 0.01%)DYLD-STUB$$free (87 samples, 0.02%)_free (196 samples, 0.04%)_xzm_free (642 samples, 0.14%)core::ptr::drop_in_place<serde_core::private::content::Content> (1,100 samples, 0.24%)core::ptr::drop_in_place<serde_core::private::content::Content> (325 samples, 0.07%)core::ptr::drop_in_place<serde_core::private::content::Content> (2,625 samples, 0.57%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,519 samples, 0.76%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,705 samples, 0.80%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,802 samples, 0.82%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,793 samples, 0.82%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,783 samples, 0.82%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,760 samples, 0.81%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (53 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (94 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (221 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (127 samples, 0.03%)_xzm_free (48 samples, 0.01%)_malloc_zone_realloc (157 samples, 0.03%)xzm_realloc (140 samples, 0.03%)_realloc (196 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (259 samples, 0.06%)alloc::raw_vec::finish_grow (238 samples, 0.05%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (50 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (111 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (61 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (68 samples, 0.01%)alloc::raw_vec::finish_grow (61 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (58 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (68 samples, 0.01%)alloc::raw_vec::finish_grow (62 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (289 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (69 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (48 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (413 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (719 samples, 0.16%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (65 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (660 samples, 0.14%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (124 samples, 0.03%)_platform_memmove (250 samples, 0.05%)_xzm_free (120 samples, 0.03%)_xzm_xzone_malloc_tiny (62 samples, 0.01%)_malloc_zone_realloc (604 samples, 0.13%)xzm_realloc (584 samples, 0.13%)_realloc (670 samples, 0.14%)alloc::raw_vec::RawVec<T,A>::grow_one (788 samples, 0.17%)alloc::raw_vec::finish_grow (744 samples, 0.16%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (74 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (352 samples, 0.08%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (60 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (436 samples, 0.09%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (953 samples, 0.21%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (517 samples, 0.11%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (88 samples, 0.02%)<deduplicated_symbol> (55 samples, 0.01%)_malloc_zone_malloc (88 samples, 0.02%)_xzm_xzone_malloc (132 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (73 samples, 0.02%)xzm_chunk_mark_used (51 samples, 0.01%)_xzm_reclaim_mark_used (51 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (533 samples, 0.12%)alloc::raw_vec::finish_grow (455 samples, 0.10%)_xzm_xzone_thread_cache_fill_and_malloc (86 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1,412 samples, 0.31%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (157 samples, 0.03%)<deduplicated_symbol> (149 samples, 0.03%)__rustc::__rdl_alloc (64 samples, 0.01%)_malloc_zone_malloc (170 samples, 0.04%)_platform_memmove (53 samples, 0.01%)_xzm_free (70 samples, 0.02%)_xzm_xzone_malloc_tiny (58 samples, 0.01%)_malloc_zone_realloc (309 samples, 0.07%)xzm_realloc (280 samples, 0.06%)_realloc (377 samples, 0.08%)_xzm_xzone_malloc (282 samples, 0.06%)_xzm_reclaim_mark_used (55 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (93 samples, 0.02%)xzm_chunk_mark_used (57 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (113 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1,445 samples, 0.31%)alloc::raw_vec::finish_grow (1,301 samples, 0.28%)alloc::raw_vec::finish_grow (59 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6,902 samples, 1.49%)serde_core::de::Deserializer::__deserialize_content_v1 (3,257 samples, 0.70%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2,588 samples, 0.56%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (152 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (677 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (121 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (12,084 samples, 2.61%)<s..serde_core::de::Deserializer::__deserialize_content_v1 (8,429 samples, 1.82%)s..serde_json::de::Deserializer<R>::end_seq (128 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (106 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1,979 samples, 0.43%)serde_core::de::Deserializer::__deserialize_content_v1 (92 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (14,946 samples, 3.23%)ser..serde_json::de::Deserializer<R>::end_map (54 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (16,967 samples, 3.67%)<ser..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (88 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (116 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (103 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (18,960 samples, 4.10%)<ser..serde_core::de::Deserializer::__deserialize_content_v1 (18,138 samples, 3.92%)serd..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (19,114 samples, 4.13%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (19,018 samples, 4.11%)serd..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (19,157 samples, 4.14%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (19,123 samples, 4.14%)serde..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (19,284 samples, 4.17%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (19,219 samples, 4.16%)serde..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (19,323 samples, 4.18%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (19,295 samples, 4.17%)serde..serde_json::de::from_str (45,361 samples, 9.81%)serde_json::de..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (45,361 samples, 9.81%)<&mut serde_js..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (45,360 samples, 9.81%)<serde_core::d..starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (45,344 samples, 9.81%)starknet_provi..serde_core::de::Deserializer::__deserialize_content_v1 (19,327 samples, 4.18%)serde..<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (51,452 samples, 11.13%)<starknet_provid..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (137 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (136 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (136 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (133 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (66 samples, 0.01%)_platform_memmove (51 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (169 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (175 samples, 0.04%)<deduplicated_symbol> (235 samples, 0.05%)DYLD-STUB$$malloc (50 samples, 0.01%)DYLD-STUB$$memcpy (48 samples, 0.01%)__rustc::__rdl_alloc (160 samples, 0.03%)__rustc::__rust_alloc (73 samples, 0.02%)_malloc_zone_malloc (327 samples, 0.07%)_platform_memmove (485 samples, 0.10%)_xzm_xzone_malloc (326 samples, 0.07%)<alloc::string::String as core::clone::Clone>::clone (1,973 samples, 0.43%)_platform_memmove (50 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3,053 samples, 0.66%)serde::private::de::content::content_clone (2,769 samples, 0.60%)serde::private::de::content::content_clone (2,306 samples, 0.50%)serde::private::de::content::content_clone (150 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (138 samples, 0.03%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::Visitor>::visit_string (53 samples, 0.01%)<&mut A as serde_core::de::MapAccess>::next_key_seed (145 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (232 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (303 samples, 0.07%)starknet_types_core::felt::Felt::from_hex (276 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (274 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (250 samples, 0.05%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (117 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (13,181 samples, 2.85%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (11,564 samples, 2.50%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (6,207 samples, 1.34%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13,578 samples, 2.94%)<s..starknet_types_core::felt::Felt::from_hex (13,336 samples, 2.88%)st..DYLD-STUB$$free (72 samples, 0.02%)_free (224 samples, 0.05%)_xzm_free (670 samples, 0.14%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (14,814 samples, 3.20%)<se.._xzm_free (166 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (15,016 samples, 3.25%)<se..<starknet_core::types::serde_impls::NumAsHexVisitorU128 as serde_core::de::Visitor>::visit_str (63 samples, 0.01%)<starknet_core::types::serde_impls::NumAsHexVisitorU64 as serde_core::de::Visitor>::visit_str (70 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (174 samples, 0.04%)_xzm_free (55 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (308 samples, 0.07%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (367 samples, 0.08%)_xzm_free (65 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (15,934 samples, 3.45%)<se..<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (15,974 samples, 3.46%)<st..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (19,392 samples, 4.19%)stark..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::InvokeTransactionContent>::deserialize (16,233 samples, 3.51%)sta..<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (113 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (182 samples, 0.04%)<deduplicated_symbol> (48 samples, 0.01%)_malloc_zone_malloc (81 samples, 0.02%)_xzm_xzone_malloc (79 samples, 0.02%)<deduplicated_symbol> (208 samples, 0.04%)__rustc::__rdl_alloc (81 samples, 0.02%)_malloc_zone_malloc (320 samples, 0.07%)_platform_memmove (308 samples, 0.07%)_xzm_xzone_malloc (290 samples, 0.06%)<alloc::string::String as core::clone::Clone>::clone (1,600 samples, 0.35%)<deduplicated_symbol> (104 samples, 0.02%)__rustc::__rdl_alloc (72 samples, 0.02%)_malloc_zone_malloc (156 samples, 0.03%)_xzm_xzone_malloc (371 samples, 0.08%)_xzm_xzone_malloc_tiny (151 samples, 0.03%)<deduplicated_symbol> (386 samples, 0.08%)DYLD-STUB$$malloc (77 samples, 0.02%)DYLD-STUB$$memcpy (67 samples, 0.01%)__rustc::__rdl_alloc (170 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (60 samples, 0.01%)_malloc_zone_malloc (497 samples, 0.11%)_platform_memmove (689 samples, 0.15%)_xzm_xzone_malloc (506 samples, 0.11%)serde::private::de::content::content_clone (2,892 samples, 0.63%)<alloc::string::String as core::clone::Clone>::clone (2,709 samples, 0.59%)serde::private::de::content::content_clone (5,963 samples, 1.29%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7,240 samples, 1.57%)serde::private::de::content::content_clone (6,912 samples, 1.50%)serde::private::de::content::content_clone (6,738 samples, 1.46%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (293 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (283 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (282 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (271 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (126 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (4,236 samples, 0.92%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3,888 samples, 0.84%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2,430 samples, 0.53%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4,347 samples, 0.94%)starknet_types_core::felt::Felt::from_hex (4,271 samples, 0.92%)<deduplicated_symbol> (127 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (56 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (15,545 samples, 3.36%)<la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (13,015 samples, 2.82%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (7,206 samples, 1.56%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (16,190 samples, 3.50%)<se..starknet_types_core::felt::Felt::from_hex (15,804 samples, 3.42%)sta..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (67 samples, 0.01%)DYLD-STUB$$free (80 samples, 0.02%)_free (396 samples, 0.09%)_malloc_zone_malloc (132 samples, 0.03%)_xzm_free (1,182 samples, 0.26%)_platform_memset (69 samples, 0.01%)_xzm_xzone_malloc (281 samples, 0.06%)_xzm_xzone_malloc_tiny (57 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (119 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (100 samples, 0.02%)xzm_chunk_mark_used (84 samples, 0.02%)_xzm_reclaim_mark_used (84 samples, 0.02%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (19,279 samples, 4.17%)<serd.._free (110 samples, 0.02%)_platform_memset (76 samples, 0.02%)_xzm_free (636 samples, 0.14%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (20,197 samples, 4.37%)<serd..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (66 samples, 0.01%)DYLD-STUB$$free (56 samples, 0.01%)_free (211 samples, 0.05%)_xzm_free (752 samples, 0.16%)serde::private::de::content::MapDeserializer<E>::end (336 samples, 0.07%)_xzm_free (241 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (26,384 samples, 5.71%)<serde:.._xzm_free (90 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (26,759 samples, 5.79%)<serde_..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (26,813 samples, 5.80%)<serde:..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (84 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (79 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (78 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (71 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (210 samples, 0.05%)_xzm_free (61 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (27,629 samples, 5.98%)<serde::..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (27,663 samples, 5.98%)<starkne..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (54,432 samples, 11.77%)<serde::private::..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (34,975 samples, 7.57%)starknet_c..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (54,470 samples, 11.78%)<serde::private::..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (54,468 samples, 11.78%)<serde_core::de::..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (54,664 samples, 11.82%)<serde::private::d.._xzm_free (55 samples, 0.01%)_free (61 samples, 0.01%)_xzm_free (416 samples, 0.09%)DYLD-STUB$$free (166 samples, 0.04%)_free (374 samples, 0.08%)_xzm_free (1,652 samples, 0.36%)_platform_memset (106 samples, 0.02%)DYLD-STUB$$free (150 samples, 0.03%)_free (367 samples, 0.08%)_xzm_free (1,513 samples, 0.33%)_platform_memset (113 samples, 0.02%)DYLD-STUB$$free (208 samples, 0.04%)_free (443 samples, 0.10%)DYLD-STUB$$_platform_bzero (50 samples, 0.01%)_xzm_free (1,516 samples, 0.33%)_platform_memset (73 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (246 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,009 samples, 0.65%)core::ptr::drop_in_place<serde_core::private::content::Content> (5,455 samples, 1.18%)core::ptr::drop_in_place<serde_core::private::content::Content> (7,899 samples, 1.71%)core::ptr::drop_in_place<serde_core::private::content::Content> (8,635 samples, 1.87%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (8,600 samples, 1.86%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (8,561 samples, 1.85%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (8,483 samples, 1.83%)c..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (88 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (50 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (50 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (286 samples, 0.06%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (68 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (356 samples, 0.08%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (326 samples, 0.07%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (409 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (595 samples, 0.13%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (99 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (649 samples, 0.14%)<alloc::collections::btree::map::IntoIter<K,V,A> as core::ops::drop::Drop>::drop (57 samples, 0.01%)<deduplicated_symbol> (48 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (72 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (73 samples, 0.02%)<deduplicated_symbol> (109 samples, 0.02%)<serde_json::value::de::SeqDeserializer as serde_core::de::SeqAccess>::size_hint (91 samples, 0.02%)_malloc_zone_malloc (108 samples, 0.02%)_xzm_xzone_malloc (355 samples, 0.08%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2,685 samples, 0.58%)_xzm_xzone_thread_cache_fill_and_malloc (54 samples, 0.01%)_free (106 samples, 0.02%)_xzm_free (447 samples, 0.10%)_platform_memset (52 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (3,816 samples, 0.83%)serde_json::value::de::visit_array (3,554 samples, 0.77%)serde_json::value::de::SeqDeserializer::new (49 samples, 0.01%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (138 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (138 samples, 0.03%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (4,094 samples, 0.89%)_malloc_zone_malloc (62 samples, 0.01%)_xzm_xzone_malloc (82 samples, 0.02%)_free (67 samples, 0.01%)_xzm_free (326 samples, 0.07%)_platform_memset (94 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5,687 samples, 1.23%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (827 samples, 0.18%)_xzm_xzone_madvise_batch (67 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (107 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (7,067 samples, 1.53%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (5,963 samples, 1.29%)_xzm_free (53 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (7,901 samples, 1.71%)serde_json::value::de::visit_array (7,215 samples, 1.56%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (133 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (133 samples, 0.03%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (8,081 samples, 1.75%)_xzm_free (54 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8,475 samples, 1.83%)<..alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (186 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (8,516 samples, 1.84%)<..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (8,513 samples, 1.84%)s..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (8,568 samples, 1.85%)<..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (51 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (51 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8,623 samples, 1.87%)<..<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (8,690 samples, 1.88%)<..serde_json::value::de::visit_array (8,660 samples, 1.87%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (8,660 samples, 1.87%)<..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (8,635 samples, 1.87%)s..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (8,705 samples, 1.88%)<..<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (123,606 samples, 26.74%)<starknet_providers::jsonrpc::JsonRpcClient..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (123,582 samples, 26.73%)starknet_providers::jsonrpc::JsonRpcClient<..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (72,077 samples, 15.59%)starknet_core::types::_:..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (8,761 samples, 1.90%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8,755 samples, 1.89%)<..<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (66 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (71 samples, 0.02%)_platform_memmove (279 samples, 0.06%)_platform_memmove (212 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (270 samples, 0.06%)alloc::raw_vec::finish_grow (269 samples, 0.06%)_realloc (269 samples, 0.06%)_malloc_zone_realloc (269 samples, 0.06%)xzm_realloc (269 samples, 0.06%)hashbrown::map::HashMap<K,V,S,A>::insert (90 samples, 0.02%)_platform_memmove (158 samples, 0.03%)_malloc_zone_realloc (257 samples, 0.06%)xzm_realloc (256 samples, 0.06%)_realloc (259 samples, 0.06%)torii::etl::extractor::starknet_helpers::block_into_contexts (623 samples, 0.13%)alloc::raw_vec::RawVec<T,A>::grow_one (273 samples, 0.06%)alloc::raw_vec::finish_grow (270 samples, 0.06%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (125,104 samples, 27.06%)<torii::etl::extractor::block_range::BlockR..<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (129 samples, 0.03%)core::hash::BuildHasher::hash_one (57 samples, 0.01%)<deduplicated_symbol> (304 samples, 0.07%)mio::waker::Waker::wake (304 samples, 0.07%)kevent (301 samples, 0.07%)__psynch_cvsignal (143 samples, 0.03%)pthread_cond_signal (145 samples, 0.03%)parking_lot::condvar::Condvar::notify_one_slow (153 samples, 0.03%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (468 samples, 0.10%)tokio::runtime::context::with_scheduler (467 samples, 0.10%)futures_channel::mpsc::Receiver<T>::next_message (526 samples, 0.11%)tokio::runtime::task::waker::wake_by_val (474 samples, 0.10%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (534 samples, 0.12%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (546 samples, 0.12%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (541 samples, 0.12%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (556 samples, 0.12%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (577 samples, 0.12%)_platform_memmove (214 samples, 0.05%)encoding_rs::Encoding::decode_without_bom_handling (183 samples, 0.04%)encoding_rs::utf_8::utf8_valid_up_to (183 samples, 0.04%)_platform_memmove (390 samples, 0.08%)http_body_util::collected::Collected<B>::to_bytes (495 samples, 0.11%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (492 samples, 0.11%)bytes::bytes_mut::shared_v_drop (63 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (1,496 samples, 0.32%)<deduplicated_symbol> (258 samples, 0.06%)DYLD-STUB$$memcpy (53 samples, 0.01%)__rustc::__rdl_alloc (95 samples, 0.02%)_malloc_zone_malloc (224 samples, 0.05%)_platform_memmove (603 samples, 0.13%)_xzm_xzone_malloc (209 samples, 0.05%)_xzm_reclaim_mark_used (84 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (47 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (143 samples, 0.03%)xzm_chunk_mark_used (89 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (186 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,868 samples, 0.40%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (60 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (58 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (70 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (70 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (75 samples, 0.02%)_platform_memmove (70 samples, 0.02%)xzm_realloc (92 samples, 0.02%)_malloc_zone_realloc (93 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2,284 samples, 0.49%)alloc::raw_vec::RawVec<T,A>::grow_one (95 samples, 0.02%)alloc::raw_vec::finish_grow (95 samples, 0.02%)_realloc (95 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2,295 samples, 0.50%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2,292 samples, 0.50%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2,292 samples, 0.50%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2,286 samples, 0.49%)core::ptr::drop_in_place<serde_core::private::content::Content> (189 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (114 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (193 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (192 samples, 0.04%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (178 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (52 samples, 0.01%)_platform_memmove (61 samples, 0.01%)_malloc_zone_realloc (84 samples, 0.02%)xzm_realloc (83 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (86 samples, 0.02%)alloc::raw_vec::finish_grow (86 samples, 0.02%)_realloc (86 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1,744 samples, 0.38%)serde_core::de::Deserializer::__deserialize_content_v1 (1,332 samples, 0.29%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1,169 samples, 0.25%)_platform_memmove (56 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (145 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2,011 samples, 0.43%)serde_core::de::Deserializer::__deserialize_content_v1 (2,011 samples, 0.43%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (6,103 samples, 1.32%)serde_json::de::from_str (4,514 samples, 0.98%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (4,514 samples, 0.98%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (4,513 samples, 0.98%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (4,509 samples, 0.98%)serde_core::de::Deserializer::__deserialize_content_v1 (2,021 samples, 0.44%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2,021 samples, 0.44%)serde_core::de::Deserializer::__deserialize_content_v1 (2,013 samples, 0.44%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (14,262 samples, 3.08%)<la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (13,342 samples, 2.89%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (7,413 samples, 1.60%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (14,495 samples, 3.14%)<se..starknet_types_core::felt::Felt::from_hex (14,387 samples, 3.11%)sta..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (14,627 samples, 3.16%)<se..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (14,603 samples, 3.16%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (14,721 samples, 3.18%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (85 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (85 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (85 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (85 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (84 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (84 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (83 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (82 samples, 0.02%)DYLD-STUB$$free (88 samples, 0.02%)_free (164 samples, 0.04%)_xzm_free (608 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (98 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (1,019 samples, 0.22%)core::ptr::drop_in_place<serde_core::private::content::Content> (1,067 samples, 0.23%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (408 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (432 samples, 0.09%)serde_json::value::de::visit_array (410 samples, 0.09%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (22,356 samples, 4.84%)<stark..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (22,350 samples, 4.83%)starkn..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (16,224 samples, 3.51%)sta..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (435 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (434 samples, 0.09%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (433 samples, 0.09%)hashbrown::map::HashMap<K,V,S,A>::insert (62 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (70 samples, 0.02%)<tokio::time::timeout::Timeout<T> as core::future::future::Future>::poll (77 samples, 0.02%)sqlx_sqlite::connection::worker::ConnectionWorker::ping::_{{closure}} (51 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (184 samples, 0.04%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (90 samples, 0.02%)<deduplicated_symbol> (197 samples, 0.04%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (193 samples, 0.04%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (201 samples, 0.04%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (270 samples, 0.06%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (83 samples, 0.02%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (56 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (86 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (100 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (105 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (51 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (127 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (113 samples, 0.02%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (173 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (139 samples, 0.03%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (345 samples, 0.07%)serde_json::de::from_trait (335 samples, 0.07%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (334 samples, 0.07%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (334 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (323 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEvent>::deserialize (49 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (54 samples, 0.01%)alloc::fmt::format::format_inner (79 samples, 0.02%)core::fmt::write (56 samples, 0.01%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (168 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (120 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (50 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (64 samples, 0.01%)alloc::fmt::format::format_inner (105 samples, 0.02%)core::fmt::write (79 samples, 0.02%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (180 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (154 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (62 samples, 0.01%)alloc::raw_vec::finish_grow (51 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (85 samples, 0.02%)alloc::fmt::format::format_inner (130 samples, 0.03%)core::fmt::write (96 samples, 0.02%)torii::etl::identification::registry::ContractRegistry::run_rules (556 samples, 0.12%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (207 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (183 samples, 0.04%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (23,785 samples, 5.14%)<torii..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (23,775 samples, 5.14%)torii:..torii::etl::decoder::DecoderId::new (90 samples, 0.02%)rusqlite::Connection::execute_batch (49 samples, 0.01%)sqlite3_step (49 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (234 samples, 0.05%)torii_erc1155::storage::Erc1155Storage::insert_transfers_batch (96 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (82 samples, 0.02%)core::fmt::write (75 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (67 samples, 0.01%)alloc::fmt::format::format_inner (120 samples, 0.03%)core::fmt::write (119 samples, 0.03%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (116 samples, 0.03%)core::fmt::write (84 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (137 samples, 0.03%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (51 samples, 0.01%)alloc::fmt::format::format_inner (66 samples, 0.01%)core::fmt::write (66 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (66 samples, 0.01%)core::fmt::write (53 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (75 samples, 0.02%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (227 samples, 0.05%)serde_core::ser::Serializer::collect_seq (78 samples, 0.02%)<deduplicated_symbol> (78 samples, 0.02%)serde_core::ser::Serializer::collect_seq (250 samples, 0.05%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (250 samples, 0.05%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (240 samples, 0.05%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (239 samples, 0.05%)serde_json::de::from_str (85 samples, 0.02%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (85 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (85 samples, 0.02%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (77 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (406 samples, 0.09%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (467 samples, 0.10%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (465 samples, 0.10%)hashbrown::map::HashMap<K,V,S,A>::insert (47 samples, 0.01%)core::hash::BuildHasher::hash_one (115 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (74 samples, 0.02%)core::hash::BuildHasher::hash_one (131 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (120 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (240 samples, 0.05%)core::hash::BuildHasher::hash_one (72 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (62 samples, 0.01%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (147 samples, 0.03%)unixWrite (1,246 samples, 0.27%)pwrite (1,245 samples, 0.27%)pagerWalFrames (1,497 samples, 0.32%)walWriteOneFrame (1,431 samples, 0.31%)walEncodeFrame (185 samples, 0.04%)walChecksumBytes (185 samples, 0.04%)sqlite3BtreeCommitPhaseOne (1,543 samples, 0.33%)sqlite3PagerCommitPhaseOne (1,543 samples, 0.33%)rusqlite::Connection::execute_batch (1,565 samples, 0.34%)sqlite3_step (1,559 samples, 0.34%)sqlite3VdbeExec (1,559 samples, 0.34%)sqlite3VdbeHalt (1,557 samples, 0.34%)vdbeCommit (1,555 samples, 0.34%)rusqlite::statement::Statement::bind_parameter (65 samples, 0.01%)getPageMMap (55 samples, 0.01%)getPageNormal (52 samples, 0.01%)getAndInitPage (63 samples, 0.01%)sqlite3BtreeIndexMoveto (453 samples, 0.10%)sqlite3VdbeRecordCompareWithSkip (182 samples, 0.04%)_platform_memcmp (58 samples, 0.01%)getAndInitPage (79 samples, 0.02%)getPageMMap (79 samples, 0.02%)getPageNormal (79 samples, 0.02%)readDbPage (73 samples, 0.02%)unixRead (73 samples, 0.02%)pread (73 samples, 0.02%)balance (96 samples, 0.02%)getAndInitPage (262 samples, 0.06%)getPageMMap (262 samples, 0.06%)getPageNormal (262 samples, 0.06%)readDbPage (239 samples, 0.05%)unixRead (237 samples, 0.05%)pread (236 samples, 0.05%)sqlite3BtreeIndexMoveto (342 samples, 0.07%)sqlite3VdbeRecordCompareWithSkip (55 samples, 0.01%)sqlite3BtreeInsert (508 samples, 0.11%)sqlite3BtreeTableMoveto (224 samples, 0.05%)sqlite3GetVarint (65 samples, 0.01%)releaseMemArray (55 samples, 0.01%)sqlite3VdbeHalt (93 samples, 0.02%)sqlite3Malloc (53 samples, 0.01%)enlargeAndAppend (66 samples, 0.01%)sqlite3StrAccumEnlarge (63 samples, 0.01%)sqlite3_str_appendf (83 samples, 0.02%)sqlite3_str_vappendf (81 samples, 0.02%)sqlite3VdbeExec (1,842 samples, 0.40%)strftimeFunc (142 samples, 0.03%)rusqlite::statement::Statement::execute_with_bound_parameters (1,866 samples, 0.40%)sqlite3_step (1,860 samples, 0.40%)core::ptr::drop_in_place<rusqlite::row::Rows> (50 samples, 0.01%)sqlite3_reset (50 samples, 0.01%)sqlite3VdbeReset (47 samples, 0.01%)pcache1Fetch (97 samples, 0.02%)getPageMMap (264 samples, 0.06%)getPageNormal (261 samples, 0.06%)readDbPage (161 samples, 0.03%)unixRead (161 samples, 0.03%)pread (160 samples, 0.03%)getAndInitPage (277 samples, 0.06%)sqlite3BtreeIndexMoveto (914 samples, 0.20%)sqlite3VdbeRecordCompareWithSkip (311 samples, 0.07%)_platform_memcmp (81 samples, 0.02%)getPageNormal (119 samples, 0.03%)readDbPage (83 samples, 0.02%)unixRead (83 samples, 0.02%)pread (83 samples, 0.02%)moveToChild (155 samples, 0.03%)getAndInitPage (153 samples, 0.03%)getPageMMap (127 samples, 0.03%)sqlite3VdbeFinishMoveto (365 samples, 0.08%)sqlite3BtreeTableMoveto (365 samples, 0.08%)rusqlite::row::Rows::get_expected_row (1,389 samples, 0.30%)sqlite3_step (1,385 samples, 0.30%)sqlite3VdbeExec (1,383 samples, 0.30%)rusqlite::statement::Statement::query_row (1,517 samples, 0.33%)torii_common::felt_to_blob (47 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments (5,771 samples, 1.25%)core::hash::BuildHasher::hash_one (69 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (59 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (129 samples, 0.03%)hashbrown::raw::RawTable<T,A>::reserve_rehash (55 samples, 0.01%)fcntl (199 samples, 0.04%)__fcntl (199 samples, 0.04%)pager_unlock (208 samples, 0.04%)unixShmLock (206 samples, 0.04%)core::ptr::drop_in_place<rusqlite::row::Rows> (263 samples, 0.06%)sqlite3_reset (260 samples, 0.06%)sqlite3VdbeReset (259 samples, 0.06%)sqlite3VdbeHalt (257 samples, 0.06%)vdbeCommit (222 samples, 0.05%)sqlite3BtreeCommitPhaseTwo (214 samples, 0.05%)unixShmLock (194 samples, 0.04%)fcntl (190 samples, 0.04%)__fcntl (190 samples, 0.04%)btreeBeginTrans (253 samples, 0.05%)sqlite3PagerSharedLock (211 samples, 0.05%)walTryBeginRead (210 samples, 0.05%)pcache1Fetch (142 samples, 0.03%)readDbPage (243 samples, 0.05%)unixRead (241 samples, 0.05%)pread (241 samples, 0.05%)getPageNormal (388 samples, 0.08%)getPageMMap (394 samples, 0.09%)getAndInitPage (398 samples, 0.09%)sqlite3BtreeIndexMoveto (1,046 samples, 0.23%)sqlite3VdbeRecordCompareWithSkip (313 samples, 0.07%)_platform_memcmp (72 samples, 0.02%)btreeInitPage (78 samples, 0.02%)getPageMMap (145 samples, 0.03%)getPageNormal (141 samples, 0.03%)readDbPage (99 samples, 0.02%)unixRead (99 samples, 0.02%)pread (99 samples, 0.02%)moveToChild (232 samples, 0.05%)getAndInitPage (230 samples, 0.05%)sqlite3VdbeFinishMoveto (418 samples, 0.09%)sqlite3BtreeTableMoveto (418 samples, 0.09%)rusqlite::row::Rows::get_expected_row (1,802 samples, 0.39%)sqlite3_step (1,798 samples, 0.39%)sqlite3VdbeExec (1,791 samples, 0.39%)rusqlite::statement::Statement::query_row (2,108 samples, 0.46%)torii_erc20::storage::Erc20Storage::get_balances_batch (2,191 samples, 0.47%)torii_erc20::storage::Erc20Storage::check_balances_batch (2,486 samples, 0.54%)sqlite3RunParser (56 samples, 0.01%)yy_reduce (47 samples, 0.01%)rusqlite::inner_connection::InnerConnection::prepare (57 samples, 0.01%)sqlite3LockAndPrepare (57 samples, 0.01%)sqlite3Prepare (57 samples, 0.01%)rusqlite::row::Rows::get_expected_row (68 samples, 0.01%)sqlite3_step (68 samples, 0.01%)sqlite3VdbeExec (68 samples, 0.01%)rusqlite::statement::Statement::query_row (79 samples, 0.02%)torii_erc20::storage::Erc20Storage::has_token_metadata (146 samples, 0.03%)pcache1Fetch (58 samples, 0.01%)unixRead (667 samples, 0.14%)pread (660 samples, 0.14%)readDbPage (669 samples, 0.14%)getPageMMap (729 samples, 0.16%)getPageNormal (728 samples, 0.16%)getAndInitPage (738 samples, 0.16%)sqlite3BtreeIndexMoveto (890 samples, 0.19%)sqlite3VdbeRecordCompareWithSkip (85 samples, 0.02%)editPage (69 samples, 0.01%)pcache1Fetch (57 samples, 0.01%)getAndInitPage (501 samples, 0.11%)getPageMMap (497 samples, 0.11%)getPageNormal (496 samples, 0.11%)readDbPage (439 samples, 0.09%)unixRead (438 samples, 0.09%)pread (434 samples, 0.09%)balance (768 samples, 0.17%)pcache1Fetch (133 samples, 0.03%)getPageMMap (560 samples, 0.12%)getPageNormal (557 samples, 0.12%)readDbPage (422 samples, 0.09%)unixRead (421 samples, 0.09%)pread (413 samples, 0.09%)getAndInitPage (569 samples, 0.12%)_platform_memcmp (267 samples, 0.06%)sqlite3VdbeRecordCompareWithSkip (472 samples, 0.10%)sqlite3BtreeIndexMoveto (1,260 samples, 0.27%)sqlite3BtreeInsert (2,157 samples, 0.47%)sqlite3BtreeOpen (69 samples, 0.01%)sqlite3BtreeTableMoveto (50 samples, 0.01%)sqlite3BtreeClose (82 samples, 0.02%)sqlite3VdbeHalt (145 samples, 0.03%)sqlite3VdbeFreeCursorNN (122 samples, 0.03%)sqlite3VdbeExec (3,793 samples, 0.82%)rusqlite::statement::Statement::execute_with_bound_parameters (3,815 samples, 0.83%)sqlite3_step (3,808 samples, 0.82%)unixWrite (1,849 samples, 0.40%)pwrite (1,846 samples, 0.40%)pagerWalFrames (2,128 samples, 0.46%)walWriteOneFrame (2,120 samples, 0.46%)walEncodeFrame (267 samples, 0.06%)walChecksumBytes (267 samples, 0.06%)sqlite3PcacheDirtyList (53 samples, 0.01%)sqlite3BtreeCommitPhaseOne (2,198 samples, 0.48%)sqlite3PagerCommitPhaseOne (2,198 samples, 0.48%)sqlite3VdbeExec (2,202 samples, 0.48%)sqlite3VdbeHalt (2,202 samples, 0.48%)vdbeCommit (2,201 samples, 0.48%)unixSync (64 samples, 0.01%)fsync (64 samples, 0.01%)rusqlite::transaction::Transaction::commit (2,516 samples, 0.54%)rusqlite::Connection::execute_batch (2,516 samples, 0.54%)sqlite3_step (2,514 samples, 0.54%)sqlite3WalDefaultHook (311 samples, 0.07%)sqlite3_wal_checkpoint_v2 (311 samples, 0.07%)sqlite3BtreeCheckpoint (311 samples, 0.07%)sqlite3WalCheckpoint (311 samples, 0.07%)unixWrite (193 samples, 0.04%)pwrite (193 samples, 0.04%)torii_erc20::storage::Erc20Storage::insert_approvals_batch (6,417 samples, 1.39%)_xzm_free (47 samples, 0.01%)sqlite3VdbeMemSetStr (134 samples, 0.03%)bindText (225 samples, 0.05%)vdbeUnbind (59 samples, 0.01%)rusqlite::statement::Statement::bind_parameter (413 samples, 0.09%)_platform_memmove (201 samples, 0.04%)sqlite3DbMallocRawNN (51 samples, 0.01%)pcache1Unpin (64 samples, 0.01%)btreeReleaseAllCursorPages (202 samples, 0.04%)sqlite3PcacheRelease (100 samples, 0.02%)allocateCursor (384 samples, 0.08%)sqlite3VdbeFreeCursorNN (230 samples, 0.05%)sqlite3Malloc (54 samples, 0.01%)allocateTempSpace (97 samples, 0.02%)pcache1Alloc (95 samples, 0.02%)applyAffinity (54 samples, 0.01%)_platform_memset (157 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (61 samples, 0.01%)sqlite3MemMalloc (86 samples, 0.02%)sqlite3Malloc (152 samples, 0.03%)pcache1Alloc (177 samples, 0.04%)pcache1FetchStage2 (210 samples, 0.05%)pcache1Fetch (221 samples, 0.05%)getPageNormal (410 samples, 0.09%)newDatabase (65 samples, 0.01%)btreeBeginTrans (549 samples, 0.12%)pcache1Fetch (137 samples, 0.03%)getPageNormal (180 samples, 0.04%)getPageMMap (201 samples, 0.04%)getAndInitPage (251 samples, 0.05%)moveToChild (289 samples, 0.06%)getPageNormal (51 samples, 0.01%)getPageMMap (59 samples, 0.01%)getAndInitPage (73 samples, 0.02%)btreeLast (395 samples, 0.09%)moveToRoot (84 samples, 0.02%)btreeParseCellPtr (58 samples, 0.01%)getCellInfo (47 samples, 0.01%)getPageMMap (76 samples, 0.02%)getAndInitPage (89 samples, 0.02%)moveToRoot (105 samples, 0.02%)sqlite3BlobCompare (60 samples, 0.01%)_platform_memset (132 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (52 samples, 0.01%)sqlite3MemMalloc (85 samples, 0.02%)sqlite3Malloc (133 samples, 0.03%)pcache1Alloc (165 samples, 0.04%)pcache1FetchStage2 (194 samples, 0.04%)pcache1Fetch (205 samples, 0.04%)btreeGetUnusedPage (374 samples, 0.08%)getPageNormal (367 samples, 0.08%)allocateBtreePage (438 samples, 0.09%)sqlite3BtreeCreateTable (460 samples, 0.10%)sqlite3BtreeCursor (125 samples, 0.03%)pcache1FetchStage2 (128 samples, 0.03%)pcache1Fetch (813 samples, 0.18%)unixRead (11,697 samples, 2.53%)un..pread (11,660 samples, 2.52%)pr..readDbPage (11,746 samples, 2.54%)re..getPageNormal (12,590 samples, 2.72%)ge..getPageMMap (12,610 samples, 2.73%)ge..getAndInitPage (12,674 samples, 2.74%)ge..DYLD-STUB$$memcmp (60 samples, 0.01%)_platform_memcmp (228 samples, 0.05%)sqlite3BtreeIndexMoveto (14,635 samples, 3.17%)sql..sqlite3VdbeRecordCompareWithSkip (876 samples, 0.19%)DYLD-STUB$$memcpy (49 samples, 0.01%)_platform_memmove (448 samples, 0.10%)_platform_memmove (47 samples, 0.01%)_platform_memset (53 samples, 0.01%)_platform_memset (139 samples, 0.03%)pcache1Fetch (53 samples, 0.01%)getPageMMap (202 samples, 0.04%)getPageNormal (201 samples, 0.04%)btreeGetUnusedPage (209 samples, 0.05%)allocateBtreePage (229 samples, 0.05%)computeCellSize (167 samples, 0.04%)cellSizePtrIdxLeaf (111 samples, 0.02%)_platform_memmove (69 samples, 0.01%)dropCell (172 samples, 0.04%)freeSpace (76 samples, 0.02%)_platform_memmove (70 samples, 0.02%)pageFreeArray (444 samples, 0.10%)freeSpace (155 samples, 0.03%)_platform_memmove (204 samples, 0.04%)editPage (1,156 samples, 0.25%)pageInsertArray (488 samples, 0.11%)pageFindSlot (121 samples, 0.03%)pcache1FetchStage2 (56 samples, 0.01%)pcache1Fetch (677 samples, 0.15%)pthread_mutex_unlock (120 samples, 0.03%)unixRead (5,552 samples, 1.20%)pread (5,516 samples, 1.19%)readDbPage (5,572 samples, 1.21%)getPageNormal (6,282 samples, 1.36%)getPageMMap (6,299 samples, 1.36%)getAndInitPage (6,359 samples, 1.38%)_platform_memmove (108 samples, 0.02%)insertCell (215 samples, 0.05%)sqlite3MemMalloc (76 samples, 0.02%)sqlite3Malloc (165 samples, 0.04%)sqlite3MemSize (52 samples, 0.01%)pcache1Alloc (234 samples, 0.05%)pcache1Free (100 samples, 0.02%)sqlite3MemMalloc (78 samples, 0.02%)sqlite3Malloc (248 samples, 0.05%)sqlite3MemSize (100 samples, 0.02%)xzm_malloc_zone_size (89 samples, 0.02%)balance (10,498 samples, 2.27%)b..defragmentPage (106 samples, 0.02%)pageFindSlot (115 samples, 0.02%)pthread_mutex_lock (132 samples, 0.03%)pcache1Fetch (2,453 samples, 0.53%)pthread_mutex_unlock (155 samples, 0.03%)unixRead (2,408 samples, 0.52%)pread (2,365 samples, 0.51%)readDbPage (2,417 samples, 0.52%)getPageNormal (4,984 samples, 1.08%)getPageMMap (5,049 samples, 1.09%)getAndInitPage (5,200 samples, 1.12%)pcache1Fetch (220 samples, 0.05%)pthread_mutex_unlock (54 samples, 0.01%)getPageNormal (257 samples, 0.06%)getPageMMap (291 samples, 0.06%)getAndInitPage (365 samples, 0.08%)moveToRoot (430 samples, 0.09%)DYLD-STUB$$memcmp (318 samples, 0.07%)_platform_memcmp (6,207 samples, 1.34%)sqlite3VdbeRecordCompareWithSkip (10,054 samples, 2.17%)s..sqlite3BtreeIndexMoveto (19,034 samples, 4.12%)sqli..vdbeRecordCompareInt (414 samples, 0.09%)getAndInitPage (56 samples, 0.01%)moveToRoot (75 samples, 0.02%)sqlite3BtreeTableMoveto (144 samples, 0.03%)sqlite3BtreeInsert (31,442 samples, 6.80%)sqlite3Bt..sqlite3VdbeRecordCompareWithSkip (313 samples, 0.07%)_platform_memset (57 samples, 0.01%)pcache1ResizeHash (179 samples, 0.04%)sqlite3Malloc (82 samples, 0.02%)pcache1Create (314 samples, 0.07%)sqlite3Malloc (54 samples, 0.01%)sqlite3MemMalloc (116 samples, 0.03%)sqlite3Malloc (289 samples, 0.06%)sqlite3MemSize (58 samples, 0.01%)sqlite3Malloc (90 samples, 0.02%)pcache1Alloc (132 samples, 0.03%)sqlite3BtreeOpen (918 samples, 0.20%)sqlite3PagerSetPagesize (213 samples, 0.05%)pcache1Fetch (62 samples, 0.01%)getPageNormal (96 samples, 0.02%)getPageMMap (165 samples, 0.04%)getAndInitPage (188 samples, 0.04%)moveToChild (201 samples, 0.04%)getPageMMap (48 samples, 0.01%)getAndInitPage (59 samples, 0.01%)moveToRoot (65 samples, 0.01%)sqlite3BtreeTableMoveto (673 samples, 0.15%)sqlite3GetVarint (258 samples, 0.06%)sqlite3VdbeFreeCursorNN (130 samples, 0.03%)btreeReleaseAllCursorPages (89 samples, 0.02%)releaseMemArray (157 samples, 0.03%)pcache1Unpin (249 samples, 0.05%)pthread_mutex_lock (120 samples, 0.03%)pthread_mutex_unlock (100 samples, 0.02%)btreeReleaseAllCursorPages (793 samples, 0.17%)sqlite3PcacheRelease (303 samples, 0.07%)pcache1Free (91 samples, 0.02%)pager_end_transaction (93 samples, 0.02%)sqlite3PagerRollback (112 samples, 0.02%)sqlite3BtreeRollback (211 samples, 0.05%)_xzm_free (47 samples, 0.01%)pcache1Destroy (136 samples, 0.03%)pcache1Free (106 samples, 0.02%)sqlite3MemSize (102 samples, 0.02%)xzm_malloc_zone_size (79 samples, 0.02%)pcache1TruncateUnsafe (292 samples, 0.06%)pcache1Truncate (316 samples, 0.07%)sqlite3PagerClose (725 samples, 0.16%)sqlite3BtreeClose (1,172 samples, 0.25%)sqlite3VdbeHalt (2,374 samples, 0.51%)sqlite3VdbeFreeCursorNN (2,145 samples, 0.46%)sqlite3VdbeMemGrow (114 samples, 0.02%)sqlite3VdbeExec (54,942 samples, 11.88%)sqlite3VdbeExecrusqlite::statement::Statement::execute_with_bound_parameters (55,178 samples, 11.94%)rusqlite::statemen..sqlite3_step (55,117 samples, 11.92%)sqlite3_stepwalIndexAppend (204 samples, 0.04%)unixWrite (23,052 samples, 4.99%)unixWr..pwrite (23,034 samples, 4.98%)pwritepagerWalFrames (27,465 samples, 5.94%)pagerWal..walWriteOneFrame (27,144 samples, 5.87%)walWrit..walEncodeFrame (4,065 samples, 0.88%)walChecksumBytes (4,049 samples, 0.88%)sqlite3PcacheCleanAll (268 samples, 0.06%)sqlite3PcacheDirtyList (1,205 samples, 0.26%)sqlite3BtreeCommitPhaseOne (28,954 samples, 6.26%)sqlite3B..sqlite3PagerCommitPhaseOne (28,953 samples, 6.26%)sqlite3P..sqlite3VdbeExec (28,965 samples, 6.27%)sqlite3V..sqlite3VdbeHalt (28,965 samples, 6.27%)sqlite3V..vdbeCommit (28,965 samples, 6.27%)vdbeComm..unixFileControl (53 samples, 0.01%)ftruncate (52 samples, 0.01%)unixRead (5,154 samples, 1.11%)pread (5,143 samples, 1.11%)fsync (1,695 samples, 0.37%)unixSync (1,697 samples, 0.37%)unixWrite (19,784 samples, 4.28%)unixW..pwrite (19,771 samples, 4.28%)pwritesqlite3WalCheckpoint (27,059 samples, 5.85%)sqlite3..rusqlite::Connection::execute_batch (56,046 samples, 12.12%)rusqlite::Connecti..sqlite3_step (56,042 samples, 12.12%)sqlite3_stepsqlite3WalDefaultHook (27,077 samples, 5.86%)sqlite3..sqlite3_wal_checkpoint_v2 (27,076 samples, 5.86%)sqlite3..sqlite3BtreeCheckpoint (27,074 samples, 5.86%)sqlite3..rusqlite::transaction::Transaction::commit (56,047 samples, 12.12%)rusqlite::transact..torii_common::felt_to_blob (73 samples, 0.02%)torii_erc20::storage::Erc20Storage::insert_transfers_batch (111,920 samples, 24.21%)torii_erc20::storage::Erc20Storage::ins..<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (127,519 samples, 27.58%)<torii_erc20::sink::Erc20Sink as torii::etl:..torii::etl::decoder::DecoderId::new (97 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (62 samples, 0.01%)torii_erc721::storage::Erc721Storage::has_token_metadata (59 samples, 0.01%)sqlite3SelectPrep (62 samples, 0.01%)sqlite3WalkSelect (62 samples, 0.01%)sqlite3WhereBegin (58 samples, 0.01%)sqlite3Select (202 samples, 0.04%)sqlite3RunParser (355 samples, 0.08%)yy_reduce (292 samples, 0.06%)sqlite3LockAndPrepare (378 samples, 0.08%)sqlite3Prepare (373 samples, 0.08%)rusqlite::inner_connection::InnerConnection::prepare (385 samples, 0.08%)fcntl (100 samples, 0.02%)__fcntl (100 samples, 0.02%)unixShmLock (104 samples, 0.02%)btreeBeginTrans (132 samples, 0.03%)sqlite3PagerSharedLock (115 samples, 0.02%)walTryBeginRead (113 samples, 0.02%)sqlite3MemMalloc (56 samples, 0.01%)sqlite3Malloc (71 samples, 0.02%)pcache1Alloc (79 samples, 0.02%)pcache1FetchStage2 (90 samples, 0.02%)pcache1Fetch (125 samples, 0.03%)unixRead (1,044 samples, 0.23%)pread (1,042 samples, 0.23%)getPageNormal (1,176 samples, 0.25%)readDbPage (1,047 samples, 0.23%)getAndInitPage (1,185 samples, 0.26%)getPageMMap (1,179 samples, 0.26%)unixRead (153 samples, 0.03%)pread (153 samples, 0.03%)getPageNormal (176 samples, 0.04%)readDbPage (154 samples, 0.03%)getPageMMap (178 samples, 0.04%)moveToRoot (181 samples, 0.04%)getAndInitPage (179 samples, 0.04%)sqlite3BtreeIndexMoveto (1,470 samples, 0.32%)sqlite3VdbeRecordCompareWithSkip (60 samples, 0.01%)sqlite3VdbeExec (1,622 samples, 0.35%)<rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance (1,629 samples, 0.35%)sqlite3_step (1,627 samples, 0.35%)pcache1Unpin (58 samples, 0.01%)btreeReleaseAllCursorPages (65 samples, 0.01%)sqlite3VdbeFreeCursorNN (66 samples, 0.01%)pager_unlock (117 samples, 0.03%)unixShmLock (114 samples, 0.02%)fcntl (105 samples, 0.02%)__fcntl (104 samples, 0.02%)core::ptr::drop_in_place<rusqlite::row::Rows> (223 samples, 0.05%)sqlite3_reset (222 samples, 0.05%)sqlite3VdbeReset (221 samples, 0.05%)sqlite3VdbeHalt (217 samples, 0.05%)vdbeCommit (134 samples, 0.03%)sqlite3BtreeCommitPhaseTwo (121 samples, 0.03%)rusqlite::statement::Statement::query_row (1,872 samples, 0.40%)torii_erc721::storage::Erc721Storage::has_token_uri (2,323 samples, 0.50%)sqlite3FinishCoding (52 samples, 0.01%)sqlite3ExprIfTrue (55 samples, 0.01%)sqlite3ExprCodeIN (51 samples, 0.01%)sqlite3VMPrintf (57 samples, 0.01%)sqlite3MPrintf (61 samples, 0.01%)sqlite3GenerateConstraintChecks (218 samples, 0.05%)sqlite3Insert (349 samples, 0.08%)sqlite3RunParser (593 samples, 0.13%)yy_reduce (485 samples, 0.10%)rusqlite::inner_connection::InnerConnection::prepare (622 samples, 0.13%)sqlite3LockAndPrepare (621 samples, 0.13%)sqlite3Prepare (615 samples, 0.13%)allocateCursor (59 samples, 0.01%)sqlite3VdbeFreeCursorNN (48 samples, 0.01%)moveToChild (198 samples, 0.04%)getAndInitPage (197 samples, 0.04%)getPageMMap (191 samples, 0.04%)getPageNormal (189 samples, 0.04%)readDbPage (166 samples, 0.04%)unixRead (163 samples, 0.04%)pread (163 samples, 0.04%)btreeLast (265 samples, 0.06%)moveToRoot (65 samples, 0.01%)getAndInitPage (62 samples, 0.01%)getPageMMap (61 samples, 0.01%)getPageNormal (61 samples, 0.01%)unixRead (375 samples, 0.08%)pread (373 samples, 0.08%)getAndInitPage (411 samples, 0.09%)getPageMMap (410 samples, 0.09%)getPageNormal (410 samples, 0.09%)readDbPage (379 samples, 0.08%)balance (537 samples, 0.12%)_xzm_xzone_malloc_freelist_outlined (53 samples, 0.01%)sqlite3MemMalloc (73 samples, 0.02%)sqlite3Malloc (105 samples, 0.02%)pcache1Alloc (122 samples, 0.03%)pcache1FetchStage2 (133 samples, 0.03%)pcache1Fetch (209 samples, 0.05%)unixRead (1,735 samples, 0.38%)pread (1,711 samples, 0.37%)readDbPage (1,748 samples, 0.38%)getPageNormal (1,968 samples, 0.43%)getPageMMap (1,971 samples, 0.43%)getAndInitPage (1,980 samples, 0.43%)readDbPage (51 samples, 0.01%)getPageNormal (88 samples, 0.02%)getPageMMap (89 samples, 0.02%)getAndInitPage (96 samples, 0.02%)moveToRoot (104 samples, 0.02%)_platform_memcmp (73 samples, 0.02%)sqlite3BtreeIndexMoveto (2,342 samples, 0.51%)sqlite3VdbeRecordCompareWithSkip (148 samples, 0.03%)sqlite3BtreeInsert (2,964 samples, 0.64%)sqlite3BtreeOpen (91 samples, 0.02%)getPageNormal (149 samples, 0.03%)readDbPage (117 samples, 0.03%)unixRead (116 samples, 0.03%)pread (116 samples, 0.03%)moveToChild (159 samples, 0.03%)getAndInitPage (158 samples, 0.03%)getPageMMap (156 samples, 0.03%)sqlite3BtreeTableMoveto (203 samples, 0.04%)pcache1Free (59 samples, 0.01%)pcache1Unpin (70 samples, 0.02%)btreeReleaseAllCursorPages (85 samples, 0.02%)_xzm_free_outlined (183 samples, 0.04%)pcache1Free (320 samples, 0.07%)pcache1EnforceMaxPage (434 samples, 0.09%)pcache1Destroy (449 samples, 0.10%)sqlite3BtreeClose (558 samples, 0.12%)sqlite3PagerClose (500 samples, 0.11%)sqlite3VdbeHalt (662 samples, 0.14%)sqlite3VdbeFreeCursorNN (657 samples, 0.14%)rusqlite::Connection::execute (5,246 samples, 1.13%)rusqlite::statement::Statement::execute_with_bound_parameters (4,560 samples, 0.99%)sqlite3_step (4,555 samples, 0.99%)sqlite3VdbeExec (4,549 samples, 0.98%)unixWrite (6,162 samples, 1.33%)pwrite (6,159 samples, 1.33%)pagerWalFrames (7,186 samples, 1.55%)walWriteOneFrame (7,138 samples, 1.54%)walEncodeFrame (968 samples, 0.21%)walChecksumBytes (961 samples, 0.21%)sqlite3PcacheDirtyList (266 samples, 0.06%)sqlite3BtreeCommitPhaseOne (7,504 samples, 1.62%)sqlite3PagerCommitPhaseOne (7,504 samples, 1.62%)sqlite3VdbeExec (7,517 samples, 1.63%)sqlite3VdbeHalt (7,515 samples, 1.63%)vdbeCommit (7,515 samples, 1.63%)unixFileControl (47 samples, 0.01%)ftruncate (47 samples, 0.01%)unixRead (1,362 samples, 0.29%)pread (1,358 samples, 0.29%)unixSync (1,608 samples, 0.35%)fsync (1,607 samples, 0.35%)sqlite3WalCheckpoint (8,610 samples, 1.86%)s..unixWrite (5,480 samples, 1.19%)pwrite (5,474 samples, 1.18%)rusqlite::Connection::execute_batch (16,132 samples, 3.49%)rus..sqlite3_step (16,131 samples, 3.49%)sql..sqlite3WalDefaultHook (8,613 samples, 1.86%)s..sqlite3_wal_checkpoint_v2 (8,613 samples, 1.86%)s..sqlite3BtreeCheckpoint (8,613 samples, 1.86%)s..rusqlite::statement::Statement::bind_parameter (66 samples, 0.01%)pcache1Free (58 samples, 0.01%)pcache1Unpin (71 samples, 0.02%)allocateCursor (112 samples, 0.02%)sqlite3VdbeFreeCursorNN (92 samples, 0.02%)btreeReleaseAllCursorPages (89 samples, 0.02%)pcache1Fetch (50 samples, 0.01%)unixRead (365 samples, 0.08%)pread (364 samples, 0.08%)getPageNormal (422 samples, 0.09%)readDbPage (367 samples, 0.08%)moveToChild (428 samples, 0.09%)getAndInitPage (426 samples, 0.09%)getPageMMap (423 samples, 0.09%)unixRead (70 samples, 0.02%)_platform_memmove (69 samples, 0.01%)getPageMMap (111 samples, 0.02%)getPageNormal (110 samples, 0.02%)readDbPage (71 samples, 0.02%)getAndInitPage (120 samples, 0.03%)btreeLast (553 samples, 0.12%)moveToRoot (122 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (68 samples, 0.01%)sqlite3MemMalloc (83 samples, 0.02%)sqlite3Malloc (105 samples, 0.02%)pcache1Alloc (119 samples, 0.03%)pcache1FetchStage2 (139 samples, 0.03%)pcache1Fetch (213 samples, 0.05%)unixRead (2,951 samples, 0.64%)pread (2,911 samples, 0.63%)readDbPage (2,964 samples, 0.64%)getPageNormal (3,184 samples, 0.69%)getAndInitPage (3,203 samples, 0.69%)getPageMMap (3,186 samples, 0.69%)getPageMMap (101 samples, 0.02%)getPageNormal (99 samples, 0.02%)readDbPage (73 samples, 0.02%)unixRead (72 samples, 0.02%)_platform_memmove (67 samples, 0.01%)getAndInitPage (107 samples, 0.02%)moveToRoot (110 samples, 0.02%)sqlite3BtreeIndexMoveto (3,571 samples, 0.77%)sqlite3VdbeRecordCompareWithSkip (150 samples, 0.03%)_platform_memcmp (53 samples, 0.01%)_platform_memmove (49 samples, 0.01%)editPage (138 samples, 0.03%)pageInsertArray (72 samples, 0.02%)pcache1Fetch (68 samples, 0.01%)unixRead (1,064 samples, 0.23%)pread (1,042 samples, 0.23%)readDbPage (1,070 samples, 0.23%)getPageNormal (1,144 samples, 0.25%)getPageMMap (1,146 samples, 0.25%)getAndInitPage (1,155 samples, 0.25%)balance (1,681 samples, 0.36%)_xzm_xzone_malloc_freelist_outlined (75 samples, 0.02%)sqlite3MemMalloc (102 samples, 0.02%)sqlite3Malloc (146 samples, 0.03%)pcache1Alloc (193 samples, 0.04%)pcache1FetchStage2 (212 samples, 0.05%)pcache1Fetch (346 samples, 0.07%)unixRead (3,175 samples, 0.69%)pread (3,157 samples, 0.68%)readDbPage (3,194 samples, 0.69%)getPageNormal (3,563 samples, 0.77%)getPageMMap (3,572 samples, 0.77%)getAndInitPage (3,600 samples, 0.78%)sqlite3MemMalloc (57 samples, 0.01%)sqlite3Malloc (93 samples, 0.02%)pcache1Alloc (112 samples, 0.02%)pcache1FetchStage2 (134 samples, 0.03%)pcache1Fetch (146 samples, 0.03%)unixRead (181 samples, 0.04%)_platform_memmove (172 samples, 0.04%)readDbPage (191 samples, 0.04%)getPageNormal (347 samples, 0.08%)getPageMMap (353 samples, 0.08%)getAndInitPage (374 samples, 0.08%)moveToRoot (385 samples, 0.08%)sqlite3VdbeRecordCompareWithSkip (412 samples, 0.09%)_platform_memcmp (202 samples, 0.04%)sqlite3BtreeIndexMoveto (4,623 samples, 1.00%)sqlite3BtreeInsert (6,592 samples, 1.43%)sqlite3MemSize (84 samples, 0.02%)xzm_malloc_zone_size (73 samples, 0.02%)pcache1Free (234 samples, 0.05%)pcache1Unpin (273 samples, 0.06%)btreeReleaseAllCursorPages (313 samples, 0.07%)sqlite3VdbeHalt (366 samples, 0.08%)sqlite3VdbeFreeCursorNN (336 samples, 0.07%)sqlite3VdbeExec (11,547 samples, 2.50%)sq..rusqlite::statement::Statement::execute_with_bound_parameters (11,578 samples, 2.50%)ru..sqlite3_step (11,566 samples, 2.50%)sq..torii_erc721::storage::Erc721Storage::insert_transfers_batch (33,077 samples, 7.15%)torii_erc7..<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (35,673 samples, 7.72%)<torii_erc7..<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (163,433 samples, 35.35%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::.._xzm_free (136 samples, 0.03%)core::hash::BuildHasher::hash_one (56 samples, 0.01%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (59 samples, 0.01%)DYLD-STUB$$free (63 samples, 0.01%)_free (153 samples, 0.03%)_xzm_free (585 samples, 0.13%)_platform_memset (76 samples, 0.02%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (985 samples, 0.21%)hashbrown::map::HashMap<K,V,S,A>::insert (528 samples, 0.11%)core::hash::BuildHasher::hash_one (406 samples, 0.09%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (295 samples, 0.06%)torii::run::_{{closure}}::_{{closure}} (320,366 samples, 69.30%)torii::run::_{{closure}}::_{{closure}}sqlite3GetToken (58 samples, 0.01%)sqlite3GenerateRowDelete (60 samples, 0.01%)whereLoopAddAll (74 samples, 0.02%)whereLoopAddBtree (72 samples, 0.02%)sqlite3WhereBegin (199 samples, 0.04%)sqlite3DeleteFrom (313 samples, 0.07%)sqlite3ExprCodeTarget (48 samples, 0.01%)sqlite3Update (71 samples, 0.02%)sqlite3GenerateConstraintChecks (153 samples, 0.03%)sqlite3Insert (363 samples, 0.08%)sqlite3RunParser (939 samples, 0.20%)yy_reduce (805 samples, 0.17%)rusqlite::inner_connection::InnerConnection::prepare (958 samples, 0.21%)sqlite3LockAndPrepare (955 samples, 0.21%)sqlite3Prepare (954 samples, 0.21%)fcntl (125 samples, 0.03%)__fcntl (125 samples, 0.03%)unixShmLock (134 samples, 0.03%)sqlite3PagerSharedLock (152 samples, 0.03%)walTryBeginRead (148 samples, 0.03%)btreeBeginTrans (195 samples, 0.04%)unixRead (101 samples, 0.02%)pread (101 samples, 0.02%)moveToChild (120 samples, 0.03%)getAndInitPage (120 samples, 0.03%)getPageMMap (118 samples, 0.03%)getPageNormal (118 samples, 0.03%)readDbPage (103 samples, 0.02%)readDbPage (106 samples, 0.02%)unixRead (106 samples, 0.02%)pread (106 samples, 0.02%)btreeLast (255 samples, 0.06%)moveToRoot (133 samples, 0.03%)getAndInitPage (131 samples, 0.03%)getPageMMap (126 samples, 0.03%)getPageNormal (126 samples, 0.03%)unixRead (89 samples, 0.02%)pread (89 samples, 0.02%)getPageMMap (95 samples, 0.02%)getPageNormal (95 samples, 0.02%)readDbPage (90 samples, 0.02%)btreeOverwriteOverflowCell (101 samples, 0.02%)pcache1FetchStage2 (50 samples, 0.01%)pcache1Fetch (88 samples, 0.02%)unixRead (975 samples, 0.21%)pread (975 samples, 0.21%)readDbPage (982 samples, 0.21%)getPageNormal (1,077 samples, 0.23%)getAndInitPage (1,090 samples, 0.24%)getPageMMap (1,082 samples, 0.23%)getPageNormal (99 samples, 0.02%)readDbPage (83 samples, 0.02%)unixRead (82 samples, 0.02%)pread (81 samples, 0.02%)moveToRoot (102 samples, 0.02%)getAndInitPage (102 samples, 0.02%)getPageMMap (101 samples, 0.02%)sqlite3BtreeIndexMoveto (1,274 samples, 0.28%)sqlite3VdbeRecordCompareWithSkip (57 samples, 0.01%)getAndInitPage (58 samples, 0.01%)getPageMMap (58 samples, 0.01%)getPageNormal (58 samples, 0.01%)readDbPage (49 samples, 0.01%)unixRead (49 samples, 0.01%)pread (49 samples, 0.01%)balance (101 samples, 0.02%)getAndInitPage (107 samples, 0.02%)getPageMMap (106 samples, 0.02%)getPageNormal (106 samples, 0.02%)readDbPage (81 samples, 0.02%)unixRead (81 samples, 0.02%)pread (81 samples, 0.02%)sqlite3BtreeIndexMoveto (161 samples, 0.03%)sqlite3BtreeInsert (292 samples, 0.06%)sqlite3BtreeTableMoveto (60 samples, 0.01%)moveToChild (60 samples, 0.01%)getAndInitPage (60 samples, 0.01%)getPageMMap (60 samples, 0.01%)getPageNormal (60 samples, 0.01%)readDbPage (59 samples, 0.01%)unixRead (58 samples, 0.01%)pread (58 samples, 0.01%)pcache1Unpin (54 samples, 0.01%)pcache1Free (47 samples, 0.01%)sqlite3VdbeHalt (92 samples, 0.02%)sqlite3VdbeFreeCursorNN (76 samples, 0.02%)btreeReleaseAllCursorPages (71 samples, 0.02%)rusqlite::Connection::execute (3,476 samples, 0.75%)rusqlite::statement::Statement::execute_with_bound_parameters (2,439 samples, 0.53%)sqlite3_step (2,437 samples, 0.53%)sqlite3VdbeExec (2,435 samples, 0.53%)strftimeFunc (59 samples, 0.01%)sqlite3Prepare (97 samples, 0.02%)sqlite3RunParser (79 samples, 0.02%)sqlite3LockAndPrepare (100 samples, 0.02%)unixWrite (3,959 samples, 0.86%)pwrite (3,958 samples, 0.86%)pagerWalFrames (4,532 samples, 0.98%)walWriteOneFrame (4,419 samples, 0.96%)walEncodeFrame (453 samples, 0.10%)walChecksumBytes (451 samples, 0.10%)sqlite3BtreeCommitPhaseOne (4,633 samples, 1.00%)sqlite3PagerCommitPhaseOne (4,630 samples, 1.00%)pager_end_transaction (62 samples, 0.01%)unixShmLock (47 samples, 0.01%)sqlite3VdbeExec (4,755 samples, 1.03%)sqlite3VdbeHalt (4,740 samples, 1.03%)vdbeCommit (4,729 samples, 1.02%)sqlite3BtreeCommitPhaseTwo (90 samples, 0.02%)unixRead (104 samples, 0.02%)pread (104 samples, 0.02%)unixSync (283 samples, 0.06%)fsync (282 samples, 0.06%)rusqlite::Connection::execute_batch (5,741 samples, 1.24%)sqlite3_step (5,618 samples, 1.22%)sqlite3WalDefaultHook (858 samples, 0.19%)sqlite3_wal_checkpoint_v2 (858 samples, 0.19%)sqlite3BtreeCheckpoint (858 samples, 0.19%)sqlite3WalCheckpoint (858 samples, 0.19%)unixWrite (445 samples, 0.10%)pwrite (445 samples, 0.10%)rusqlite::statement::Statement::bind_parameter (49 samples, 0.01%)pcache1FetchStage2 (48 samples, 0.01%)pcache1Fetch (67 samples, 0.01%)unixRead (349 samples, 0.08%)pread (348 samples, 0.08%)getAndInitPage (434 samples, 0.09%)getPageMMap (424 samples, 0.09%)getPageNormal (424 samples, 0.09%)readDbPage (356 samples, 0.08%)moveToChild (440 samples, 0.10%)unixRead (179 samples, 0.04%)pread (177 samples, 0.04%)readDbPage (181 samples, 0.04%)btreeLast (668 samples, 0.14%)moveToRoot (224 samples, 0.05%)getAndInitPage (221 samples, 0.05%)getPageMMap (215 samples, 0.05%)getPageNormal (214 samples, 0.05%)sqlite3BtreeBeginStmt (49 samples, 0.01%)pagerOpenSavepoint (49 samples, 0.01%)pcache1Alloc (62 samples, 0.01%)pcache1FetchStage2 (71 samples, 0.02%)pcache1Fetch (102 samples, 0.02%)unixRead (533 samples, 0.12%)pread (533 samples, 0.12%)getPageNormal (652 samples, 0.14%)readDbPage (539 samples, 0.12%)getPageMMap (667 samples, 0.14%)getAndInitPage (676 samples, 0.15%)unixRead (282 samples, 0.06%)pread (282 samples, 0.06%)readDbPage (291 samples, 0.06%)getPageNormal (338 samples, 0.07%)getPageMMap (342 samples, 0.07%)moveToRoot (349 samples, 0.08%)getAndInitPage (348 samples, 0.08%)sqlite3BtreeIndexMoveto (1,291 samples, 0.28%)sqlite3VdbeRecordCompareWithSkip (179 samples, 0.04%)_platform_memcmp (54 samples, 0.01%)editPage (54 samples, 0.01%)getPageNormal (669 samples, 0.14%)readDbPage (621 samples, 0.13%)unixRead (619 samples, 0.13%)pread (618 samples, 0.13%)getAndInitPage (674 samples, 0.15%)getPageMMap (671 samples, 0.15%)sqlite3Malloc (47 samples, 0.01%)memjrnlWrite (89 samples, 0.02%)pager_write (99 samples, 0.02%)subjournalPageIfRequired (98 samples, 0.02%)balance (1,109 samples, 0.24%)_platform_memmove (63 samples, 0.01%)sqlite3MemMalloc (76 samples, 0.02%)sqlite3Malloc (137 samples, 0.03%)memjrnlWrite (234 samples, 0.05%)pager_write (254 samples, 0.05%)subjournalPageIfRequired (249 samples, 0.05%)sqlite3MemMalloc (54 samples, 0.01%)sqlite3Malloc (79 samples, 0.02%)pcache1Alloc (105 samples, 0.02%)pcache1FetchStage2 (147 samples, 0.03%)pcache1Fetch (310 samples, 0.07%)unixRead (1,271 samples, 0.27%)pread (1,270 samples, 0.27%)readDbPage (1,304 samples, 0.28%)getPageNormal (1,625 samples, 0.35%)getPageMMap (1,628 samples, 0.35%)getAndInitPage (1,654 samples, 0.36%)pcache1Fetch (69 samples, 0.01%)pcache1FetchStage2 (60 samples, 0.01%)unixRead (417 samples, 0.09%)pread (415 samples, 0.09%)getAndInitPage (499 samples, 0.11%)getPageMMap (494 samples, 0.11%)getPageNormal (494 samples, 0.11%)readDbPage (422 samples, 0.09%)moveToRoot (502 samples, 0.11%)sqlite3VdbeRecordCompareWithSkip (275 samples, 0.06%)_platform_memcmp (117 samples, 0.03%)sqlite3BtreeIndexMoveto (2,805 samples, 0.61%)vdbeRecordCompareString (290 samples, 0.06%)_platform_memcmp (226 samples, 0.05%)_platform_memmove (55 samples, 0.01%)sqlite3Malloc (93 samples, 0.02%)memjrnlWrite (165 samples, 0.04%)subjournalPageIfRequired (181 samples, 0.04%)sqlite3BtreeInsert (4,486 samples, 0.97%)pcache1Unpin (47 samples, 0.01%)btreeReleaseAllCursorPages (57 samples, 0.01%)sqlite3VdbeFreeCursorNN (58 samples, 0.01%)pcache1Free (163 samples, 0.04%)pcache1Unpin (198 samples, 0.04%)btreeReleaseAllCursorPages (244 samples, 0.05%)sqlite3VdbeFreeCursorNN (263 samples, 0.06%)_xzm_free (76 samples, 0.02%)memjrnlTruncate (188 samples, 0.04%)sqlite3VdbeHalt (520 samples, 0.11%)vdbeCloseStatement (224 samples, 0.05%)sqlite3BtreeSavepoint (216 samples, 0.05%)sqlite3PagerSavepoint (214 samples, 0.05%)sqlite3VdbeExec (7,257 samples, 1.57%)rusqlite::statement::Statement::execute_with_bound_parameters (7,271 samples, 1.57%)sqlite3_step (7,266 samples, 1.57%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (98 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (158 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (132 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (102 samples, 0.02%)serde_json::de::from_str (166 samples, 0.04%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (163 samples, 0.04%)<torii_erc721::storage::Erc721Storage as torii_common::token_uri::TokenUriStore>::store_token_uri::_{{closure}} (16,857 samples, 3.65%)<tor..parking_lot::condvar::Condvar::notify_one_slow (50 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (65 samples, 0.01%)tokio::runtime::context::with_scheduler (64 samples, 0.01%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (75 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (67 samples, 0.01%)tokio::sync::semaphore::Semaphore::acquire::_{{closure}} (66 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (53 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (122 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (92 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (92 samples, 0.02%)tokio::runtime::context::with_scheduler (92 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (126 samples, 0.03%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (130 samples, 0.03%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (127 samples, 0.03%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (127 samples, 0.03%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (149 samples, 0.03%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (246 samples, 0.05%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (218 samples, 0.05%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (251 samples, 0.05%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (352 samples, 0.08%)url::ParseOptions::parse (47 samples, 0.01%)alloc::fmt::format::format_inner (63 samples, 0.01%)core::fmt::write (59 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (52 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (72 samples, 0.02%)core::ptr::drop_in_place<reqwest::async_impl::client::Pending> (84 samples, 0.02%)core::ptr::drop_in_place<reqwest::async_impl::client::ResponseFuture> (59 samples, 0.01%)<reqwest::redirect::TowerRedirectPolicy as tower_http::follow_redirect::policy::Policy<reqwest::async_impl::body::Body,reqwest::error::Error>>::on_request (65 samples, 0.01%)reqwest::async_impl::request::RequestBuilder::send (181 samples, 0.04%)reqwest::async_impl::client::Client::execute_request (177 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (595 samples, 0.13%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (554 samples, 0.12%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (322 samples, 0.07%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (618 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (609 samples, 0.13%)starknet_types_core::felt::Felt::from_hex (602 samples, 0.13%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (128 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (61 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (51 samples, 0.01%)serde_json::de::from_str (817 samples, 0.18%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (814 samples, 0.18%)serde_core::de::Deserializer::__deserialize_content_v1 (164 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (159 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (139 samples, 0.03%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (1,932 samples, 0.42%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::call::_{{closure}} (1,957 samples, 0.42%)torii_common::metadata::MetadataFetcher::decode_string_result (99 samples, 0.02%)torii_common::token_uri::fetch_token_uri_with_retry::_{{closure}} (2,090 samples, 0.45%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (67 samples, 0.01%)serde_json::de::from_trait (138 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (138 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (136 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (101 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (75 samples, 0.02%)serde_json::ser::to_vec (66 samples, 0.01%)serde_core::ser::SerializeMap::serialize_entry (59 samples, 0.01%)serde_json::value::ser::_<impl serde_core::ser::Serialize for serde_json::value::Value>::serialize (51 samples, 0.01%)<T as futures_util::fns::FnOnce1<A>>::call_once (75 samples, 0.02%)hyper_util::client::legacy::connect::http::_<impl hyper_util::client::legacy::connect::Connection for tokio::net::tcp::stream::TcpStream>::connected (63 samples, 0.01%)<futures_util::fns::MapOkFn<F> as futures_util::fns::FnOnce1<core::result::Result<T,E>>>::call_once (77 samples, 0.02%)socket2::socket::Socket::new (73 samples, 0.02%)socket (58 samples, 0.01%)hyper_util::client::legacy::connect::http::connect (93 samples, 0.02%)socket2::socket::Socket::connect (500 samples, 0.11%)__connect (500 samples, 0.11%)<core::pin::Pin<P> as core::future::future::Future>::poll (624 samples, 0.13%)socket2::socket::Socket::new (298 samples, 0.06%)socket (251 samples, 0.05%)hyper_util::client::legacy::connect::http::connect (384 samples, 0.08%)socket2::socket::Socket::connect (2,129 samples, 0.46%)__connect (2,128 samples, 0.46%)tokio::net::tcp::stream::TcpStream::new (53 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::new_with_interest (53 samples, 0.01%)tokio::runtime::io::registration::Registration::new_with_interest_and_handle (48 samples, 0.01%)tokio::runtime::io::driver::Handle::add_source (48 samples, 0.01%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (3,405 samples, 0.74%)tokio::net::tcp::socket::TcpSocket::connect::_{{closure}} (2,235 samples, 0.48%)__recvfrom (1,134 samples, 0.25%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,150 samples, 0.25%)<&std::net::tcp::TcpStream as std::io::Read>::read (1,146 samples, 0.25%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (1,165 samples, 0.25%)tokio::io::poll_evented::PollEvented<E>::poll_read (1,163 samples, 0.25%)security_framework::secure_transport::read_func (1,176 samples, 0.25%)tls_record_decrypt (48 samples, 0.01%)SSLRecordReadInternal (1,273 samples, 0.28%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (875 samples, 0.19%)<&std::net::tcp::TcpStream as std::io::Write>::write (873 samples, 0.19%)__sendto (867 samples, 0.19%)tokio::io::poll_evented::PollEvented<E>::poll_write (880 samples, 0.19%)SSLRecordServiceWriteQueueInternal (892 samples, 0.19%)security_framework::secure_transport::write_func (883 samples, 0.19%)tls1GenerateKeyMaterial (80 samples, 0.02%)tls_handshake_internal_prf (80 samples, 0.02%)tlsPHash (80 samples, 0.02%)SSLInitPendingCiphers (119 samples, 0.03%)SSLEncodeFinishedMessage (64 samples, 0.01%)tls12ComputeFinishedMac (61 samples, 0.01%)tls_handshake_internal_prf (53 samples, 0.01%)tlsPHash (52 samples, 0.01%)ccec_affinify_x_only_ws (164 samples, 0.04%)ccn_p256_inv_asm_ws (163 samples, 0.04%)ccn_mulmod_p256 (160 samples, 0.03%)ccec_full_add_default_ws (65 samples, 0.01%)ccn_cond_add (67 samples, 0.01%)ccn_mulmod_p256 (924 samples, 0.20%)ccn_mux (70 samples, 0.02%)ccn_sub_asm (51 samples, 0.01%)cczp_add_default_ws (175 samples, 0.04%)ccn_cond_add (367 samples, 0.08%)ccn_mux_next_mask (54 samples, 0.01%)ccn_sub_asm (207 samples, 0.04%)cczp_n (48 samples, 0.01%)cczp_sub_default_ws (665 samples, 0.14%)ccec_mult_XYCZaddC_ws (1,972 samples, 0.43%)cczp_sub_ws (49 samples, 0.01%)ccn_mulmod_p256 (679 samples, 0.15%)ccn_cond_add (295 samples, 0.06%)ccn_mux_next_mask (47 samples, 0.01%)ccn_sub_asm (143 samples, 0.03%)cczp_sub_default_ws (501 samples, 0.11%)ccec_mult_XYCZadd_ws (1,311 samples, 0.28%)ccn_cond_swap (72 samples, 0.02%)ccec_mult_default_ws (3,691 samples, 0.80%)cczp_sub_default_ws (90 samples, 0.02%)ccec_mult_blinded_ws (3,754 samples, 0.81%)ccecdh_compute_shared_secret_ws (3,955 samples, 0.86%)ccecdh_compute_shared_secret (3,968 samples, 0.86%)ccec_affinify_jacobian_ws (167 samples, 0.04%)ccn_p256_inv_asm_ws (162 samples, 0.04%)ccn_mulmod_p256 (156 samples, 0.03%)ccec_full_add_default_ws (57 samples, 0.01%)ccn_cond_add (58 samples, 0.01%)ccn_mulmod_p256 (1,018 samples, 0.22%)ccn_mux (60 samples, 0.01%)ccn_sub_asm (48 samples, 0.01%)cczp_add_default_ws (166 samples, 0.04%)ccn_cond_add (460 samples, 0.10%)ccn_mux_next_mask (58 samples, 0.01%)ccn_sub_asm (224 samples, 0.05%)cczp_n (88 samples, 0.02%)cczp_sub_default_ws (814 samples, 0.18%)ccec_mult_XYCZaddC_ws (2,221 samples, 0.48%)cczp_sub_ws (54 samples, 0.01%)ccn_mulmod_p256 (788 samples, 0.17%)ccn_cond_add (330 samples, 0.07%)ccn_sub_asm (148 samples, 0.03%)cczp_sub_default_ws (559 samples, 0.12%)ccec_mult_XYCZadd_ws (1,455 samples, 0.31%)ccn_cond_rsub (47 samples, 0.01%)ccn_cond_swap (82 samples, 0.02%)ccec_mult_default_ws (4,082 samples, 0.88%)cczp_sub_default_ws (76 samples, 0.02%)ccec_mult_blinded_ws (4,140 samples, 0.90%)ccec_make_pub_from_priv_ws (4,333 samples, 0.94%)ccec_generate_key_internal_fips_ws (4,366 samples, 0.94%)ccn_p256_inv_asm_ws (156 samples, 0.03%)ccn_mulmod_p256 (156 samples, 0.03%)ccec_affinify_x_only_ws (157 samples, 0.03%)ccec_full_add_default_ws (80 samples, 0.02%)ccn_cond_add (56 samples, 0.01%)ccn_mulmod_p256 (990 samples, 0.21%)ccn_mux (81 samples, 0.02%)cczp_add_default_ws (205 samples, 0.04%)ccn_cond_add (365 samples, 0.08%)ccn_mux_next_mask (50 samples, 0.01%)ccn_sub_asm (210 samples, 0.05%)cczp_n (64 samples, 0.01%)cczp_sub_default_ws (683 samples, 0.15%)ccec_mult_XYCZaddC_ws (2,080 samples, 0.45%)cczp_sub_ws (47 samples, 0.01%)ccn_mulmod_p256 (773 samples, 0.17%)ccn_cond_add (308 samples, 0.07%)ccn_sub_asm (128 samples, 0.03%)cczp_sub_default_ws (494 samples, 0.11%)ccec_mult_XYCZadd_ws (1,386 samples, 0.30%)ccn_cond_rsub (71 samples, 0.02%)ccn_cond_swap (87 samples, 0.02%)cczp_sub_default_ws (97 samples, 0.02%)ccec_mult_default_ws (3,906 samples, 0.84%)ccec_mult_blinded_ws (3,980 samples, 0.86%)ccn_gcd_update_ws (67 samples, 0.01%)cczp_inv_default_ws (259 samples, 0.06%)ccec_sign_internal_inner_ws (4,425 samples, 0.96%)ccec_sign_internal_ws (4,456 samples, 0.96%)ccec_sign_composite_msg_ws (4,470 samples, 0.97%)ccec_sign_composite_ws (4,458 samples, 0.96%)ccn_mulmod_p256 (183 samples, 0.04%)ccec_affinify_x_only_ws (191 samples, 0.04%)ccn_p256_inv_asm_ws (188 samples, 0.04%)ccn_mulmod_p256 (796 samples, 0.17%)cc_ws_alloc (63 samples, 0.01%)cc_try_abort_if (62 samples, 0.01%)ccn_add_asm (177 samples, 0.04%)ccn_mux (290 samples, 0.06%)ccn_sub_asm (161 samples, 0.03%)cczp_add_default_ws (815 samples, 0.18%)ccn_cond_add (206 samples, 0.04%)ccn_sub_asm (91 samples, 0.02%)cczp_sub_default_ws (336 samples, 0.07%)ccec_double_ws (2,086 samples, 0.45%)ccn_mulmod_p256 (251 samples, 0.05%)cczp_add_default_ws (47 samples, 0.01%)ccn_cond_add (78 samples, 0.02%)cczp_sub_default_ws (143 samples, 0.03%)ccec_add_normalized_ws (514 samples, 0.11%)ccec_full_add_normalized_ws (540 samples, 0.12%)ccn_mulmod_p256 (279 samples, 0.06%)cczp_add_default_ws (73 samples, 0.02%)ccn_cond_add (58 samples, 0.01%)cczp_sub_default_ws (113 samples, 0.02%)ccec_add_normalized_ws (528 samples, 0.11%)ccec_full_sub_normalized_ws (539 samples, 0.12%)ccn_p256_inv_asm_ws (149 samples, 0.03%)ccn_mulmod_p256 (148 samples, 0.03%)ccn_recode_jsf_column (84 samples, 0.02%)ccec_twin_mult_ws (3,557 samples, 0.77%)cczp_inv_update_redc_ws (54 samples, 0.01%)cczp_inv_default_ws (239 samples, 0.05%)ccec_verify_internal_with_base_ws (4,018 samples, 0.87%)ccec_pairwise_consistency_check_ws (8,508 samples, 1.84%)c..ccec_verify_composite_msg_ws (4,029 samples, 0.87%)ccec_verify_composite_digest_ws (4,022 samples, 0.87%)sslEcdhCreateKey (12,891 samples, 2.79%)ss..ccec_generate_key (12,885 samples, 2.79%)cc..ccec_generate_key_fips_ws (12,879 samples, 2.79%)cc..SSLEncodeKeyExchange (16,921 samples, 3.66%)SSLE..SSLPrepareAndQueueMessage (17,015 samples, 3.68%)SSLP..SSLSendFlight (47 samples, 0.01%)tls_handshake_continue (17,271 samples, 3.74%)tls_..SSLAdvanceHandshake (17,266 samples, 3.73%)SSLA..tls12GenerateMasterSecret (81 samples, 0.02%)tls_handshake_internal_prf (66 samples, 0.01%)tlsPHash (64 samples, 0.01%)AccelerateCrypto_SHA512_compress_hwassist (117 samples, 0.03%)ccdigest_update_internal (122 samples, 0.03%)HashSHA512Update (131 samples, 0.03%)ccdigest_update (131 samples, 0.03%)_xpc_pipe_mach_msg (145 samples, 0.03%)mach_msg (143 samples, 0.03%)mach_msg_overwrite (143 samples, 0.03%)mach_msg2_internal (141 samples, 0.03%)mach_msg2_trap (141 samples, 0.03%)_xpc_pipe_routine (201 samples, 0.04%)_asl_mt_shim_send_message (286 samples, 0.06%)mach_msg2_internal (146 samples, 0.03%)mach_msg2_trap (146 samples, 0.03%)_asl_server_message (149 samples, 0.03%)mach_msg (149 samples, 0.03%)mach_msg_overwrite (148 samples, 0.03%)asl_msg_to_string_raw (151 samples, 0.03%)asl_string_new (93 samples, 0.02%)asl_string_append_no_encoding_len (91 samples, 0.02%)_platform_memmove (55 samples, 0.01%)_asl_send_message (666 samples, 0.14%)asl_log (688 samples, 0.15%)_asl_lib_vlog (669 samples, 0.14%)tls_metric_event_add_string (719 samples, 0.16%)_asl_mt_shim_send_message (61 samples, 0.01%)tls_metric_event_done (116 samples, 0.03%)asl_log (114 samples, 0.02%)_asl_lib_vlog (110 samples, 0.02%)_asl_send_message (110 samples, 0.02%)SSLAdvanceHandshake (902 samples, 0.20%)tls_metric_client_finished (864 samples, 0.19%)SSLProcessFinished (83 samples, 0.02%)tls12ComputeFinishedMac (77 samples, 0.02%)tls_handshake_internal_prf (65 samples, 0.01%)tlsPHash (57 samples, 0.01%)ccn_mulmod_p256 (137 samples, 0.03%)ccn_mux (49 samples, 0.01%)cczp_add_default_ws (145 samples, 0.03%)cczp_sub_default_ws (69 samples, 0.01%)ccec_double_ws (384 samples, 0.08%)ccn_mulmod_p256 (59 samples, 0.01%)ccec_add_normalized_ws (106 samples, 0.02%)ccec_full_add_normalized_ws (111 samples, 0.02%)ccn_mulmod_p256 (55 samples, 0.01%)ccec_add_normalized_ws (95 samples, 0.02%)ccec_full_sub_normalized_ws (102 samples, 0.02%)ccec_twin_mult_ws (675 samples, 0.15%)sslRawVerify (757 samples, 0.16%)ccec_verify (757 samples, 0.16%)ccec_verify_digest_ws (755 samples, 0.16%)ccec_verify_internal_with_base_ws (753 samples, 0.16%)cczp_mm_to_ws (69 samples, 0.01%)ccn_mul (58 samples, 0.01%)cczp_mm_mul_ws (87 samples, 0.02%)ccn_addmul1_asm (127 samples, 0.03%)ccn_sqr_ws (152 samples, 0.03%)ccn_addmul1_asm (260 samples, 0.06%)cczp_mm_sqr_ws (440 samples, 0.10%)cczp_mm_redc_ws (274 samples, 0.06%)ccrsa_pub_crypt_ws (630 samples, 0.14%)cczp_power_fast_ws (534 samples, 0.12%)ccrsa_verify_pkcs1v15_internal_ws (656 samples, 0.14%)SSLVerifySignedServerKeyExchangeTls12 (1,453 samples, 0.31%)sslRsaVerify (673 samples, 0.15%)ccrsa_verify_pkcs1v15 (673 samples, 0.15%)SSLProcessHandshakeMessage (1,609 samples, 0.35%)SSLProcessServerKeyExchange (1,459 samples, 0.32%)AccelerateCrypto_SHA1_compress (76 samples, 0.02%)ccdigest_update_internal (92 samples, 0.02%)ccdigest_update (112 samples, 0.02%)HashSHA1Update (118 samples, 0.03%)AccelerateCrypto_SHA256_compress (61 samples, 0.01%)ccdigest_update_internal (69 samples, 0.01%)HashSHA256Update (80 samples, 0.02%)ccdigest_update (79 samples, 0.02%)AccelerateCrypto_SHA512_compress_hwassist (105 samples, 0.02%)ccdigest_update_internal (119 samples, 0.03%)SSLUpdateHandshakeMacs (330 samples, 0.07%)HashSHA384Update (131 samples, 0.03%)ccdigest_update (129 samples, 0.03%)Security::KeychainCore::Certificate::~Certificate() (87 samples, 0.02%)Security::KeychainCore::Certificate::~Certificate() (87 samples, 0.02%)Security::CFClass::refCountForType(long, void const*) (91 samples, 0.02%)_CFRelease (113 samples, 0.02%)SecCertificateDestroy (154 samples, 0.03%)_CFRelease (178 samples, 0.04%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (179 samples, 0.04%)-[__NSArrayM dealloc] (180 samples, 0.04%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (50 samples, 0.01%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (57 samples, 0.01%)SecECKeyCopyPublicBits (62 samples, 0.01%)SecKeyCopyPublicBytes (61 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (53 samples, 0.01%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (76 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (75 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (166 samples, 0.04%)SecECKeyGetNamedCurve (182 samples, 0.04%)SecKeyCopyAttributes (173 samples, 0.04%)-[__NSDictionaryM __setObject:forKey:] (49 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (108 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (112 samples, 0.02%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (118 samples, 0.03%)SecKeyCopyExponent (329 samples, 0.07%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (308 samples, 0.07%)-[__NSDictionaryM __setObject:forKey:] (91 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (115 samples, 0.02%)CSSM_ModuleAttach (48 samples, 0.01%)Security::CssmClient::AttachmentImpl::activate() (55 samples, 0.01%)Security::CssmClient::WrapKey::activate() (84 samples, 0.02%)Security::CssmClient::Crypt::activate() (82 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (241 samples, 0.05%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (253 samples, 0.05%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (513 samples, 0.11%)SecKeyCopyModulus (545 samples, 0.12%)Security::KeychainCore::Certificate::Certificate(cssm_data const&, unsigned int, unsigned int) (56 samples, 0.01%)SecCertificateCreateItemImplInstance (96 samples, 0.02%)RSAKeyInfoProvider::QueryKeySizeInBits(cssm_key_size&) (63 samples, 0.01%)rawCssmKeyToRsa (47 samples, 0.01%)AppleCSPSession::getKeySize(Security::CssmKey const&, cssm_key_size&) (108 samples, 0.02%)cssm_QueryKeySizeInBits(long, unsigned long long, cssm_context const*, cssm_key const*, cssm_key_size*) (119 samples, 0.03%)CSSM_QueryKeySizeInBits (134 samples, 0.03%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (198 samples, 0.04%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (215 samples, 0.05%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (201 samples, 0.04%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (223 samples, 0.05%)CSSM_CL_CertGetFirstCachedFieldValue (233 samples, 0.05%)SEC_ASN1Decode (108 samples, 0.02%)SEC_ASN1DecoderUpdate (66 samples, 0.01%)DecodedExtensions::decodeFromNss(NSS_CertExtension**) (179 samples, 0.04%)SEC_ASN1DecoderUpdate (184 samples, 0.04%)SEC_ASN1DecoderUpdate (268 samples, 0.06%)SEC_ASN1Decode (312 samples, 0.07%)DecodedCert::DecodedCert(AppleX509CLSession&, Security::CssmData const&) (498 samples, 0.11%)AppleX509CLSession::CertCache(Security::CssmData const&, long&) (505 samples, 0.11%)cssm_CertCache(long, cssm_data const*, long*) (519 samples, 0.11%)CSSM_CL_CertCache (546 samples, 0.12%)Security::KeychainCore::Certificate::certHandle() (554 samples, 0.12%)Attachment::Attachment(Module*, cssm_version const&, unsigned int, unsigned int, cssm_memory_funcs const&, unsigned int, unsigned int) (66 samples, 0.01%)StandardAttachmentMaker<8u, cssm_spi_cl_funcs, &CLNameTable>::make(Module*, cssm_version const&, unsigned int, unsigned int, cssm_memory_funcs const&, unsigned int, unsigned int, cssm_func_name_addr*, unsigned int) (74 samples, 0.02%)CSSM_ModuleAttach (98 samples, 0.02%)Security::CssmClient::AttachmentImpl::activate() (114 samples, 0.02%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (931 samples, 0.20%)Security::KeychainCore::Certificate::clHandle() (117 samples, 0.03%)Security::KeychainCore::Certificate::publicKey() (988 samples, 0.21%)SecCertificateCopyPublicKey$LEGACYMAC (1,208 samples, 0.26%)SecTrustCopyPublicKey (1,210 samples, 0.26%)SecPolicyAddBasicX509Options (84 samples, 0.02%)SecPolicyAddBasicCertOptions (63 samples, 0.01%)SecPolicyCreateBasicX509 (126 samples, 0.03%)SecTrustCreateWithCertificates (182 samples, 0.04%)Security::KeychainCore::KeyItem::~KeyItem() (74 samples, 0.02%)Security::KeychainCore::KeyItem::~KeyItem() (64 samples, 0.01%)Security::RefPointer<Security::CssmClient::ObjectImpl>::~RefPointer() (61 samples, 0.01%)Security::RefPointer<Security::CssmClient::ObjectImpl>::release_internal() (59 samples, 0.01%)Security::CssmClient::KeyImpl::~KeyImpl() (59 samples, 0.01%)Security::CssmClient::KeyImpl::~KeyImpl() (59 samples, 0.01%)SecCDSAKeyDestroy(__SecKey*) (87 samples, 0.02%)_CFRelease (141 samples, 0.03%)ccn_cond_add (64 samples, 0.01%)ccn_divmod_ws (119 samples, 0.03%)sslGetPubKeyFromBits (162 samples, 0.04%)ccrsa_init_pub (146 samples, 0.03%)cczp_mm_init_ws (137 samples, 0.03%)cczp_init_ws (135 samples, 0.03%)__CFBasicHashRehash (53 samples, 0.01%)__CFBasicHashAddValue (75 samples, 0.02%)CFBasicHashAddValue (122 samples, 0.03%)CFBasicHashGetCountOfKey (78 samples, 0.02%)___CFBasicHashFindBucket_Linear (71 samples, 0.02%)CFSetContainsValue (81 samples, 0.02%)DERParseSequenceContentToObject (64 samples, 0.01%)_CFURLCreateWithURLString (90 samples, 0.02%)CFURLCreateWithBytes (139 samples, 0.03%)SecCEPAuthorityInfoAccess (183 samples, 0.04%)_CFURLCreateWithURLString (59 samples, 0.01%)CFURLCreateWithBytes (98 samples, 0.02%)SecCEPCrlDistributionPoints (133 samples, 0.03%)parseGeneralNamesContent (129 samples, 0.03%)appendCRLDPFromGeneralNames (128 samples, 0.03%)_CFRelease (50 samples, 0.01%)__CFDataInit (56 samples, 0.01%)createNormalizedX501Name (105 samples, 0.02%)SecCertificateParse (996 samples, 0.22%)SecCertificateCreateWithData (1,076 samples, 0.23%)tls_handshake_message_callback (4,155 samples, 0.90%)tls_helper_set_peer_pubkey (4,150 samples, 0.90%)tls_helper_create_cfarray_from_certificates (1,121 samples, 0.24%)SecPolicyAddBasicX509Options (55 samples, 0.01%)add_eku (75 samples, 0.02%)SecPolicyCreateSSL_internal (296 samples, 0.06%)set_ssl_ekus (87 samples, 0.02%)__CFBasicHashRehash (49 samples, 0.01%)__CFBasicHashAddValue (73 samples, 0.02%)CFBasicHashAddValue (114 samples, 0.02%)CFEqual (55 samples, 0.01%)CFBasicHashGetCountOfKey (87 samples, 0.02%)___CFBasicHashFindBucket_Linear (83 samples, 0.02%)CFSetContainsValue (93 samples, 0.02%)_CFURLCreateWithURLString (70 samples, 0.02%)CFURLCreateWithBytes (96 samples, 0.02%)SecCEPAuthorityInfoAccess (133 samples, 0.03%)CFURLCreateWithBytes (59 samples, 0.01%)SecCEPCrlDistributionPoints (83 samples, 0.02%)parseGeneralNamesContent (76 samples, 0.02%)appendCRLDPFromGeneralNames (75 samples, 0.02%)_CFRelease (47 samples, 0.01%)__CFDataInit (53 samples, 0.01%)createNormalizedX501Name (71 samples, 0.02%)SecCertificateParse (816 samples, 0.18%)SecCertificateCreateWithData (866 samples, 0.19%)SSLProcessHandshakeRecordInner (8,407 samples, 1.82%)S..tls_verify_peer_cert (1,275 samples, 0.28%)sslCreateSecTrust (1,272 samples, 0.28%)tls_helper_create_peer_trust (1,270 samples, 0.27%)tls_helper_create_cfarray_from_certificates (904 samples, 0.20%)SSLHandshake (27,919 samples, 6.04%)SSLHands..SSLHandshakeProceed (27,913 samples, 6.04%)SSLHands..tls_handshake_process (8,462 samples, 1.83%)t..SecPolicyAddBasicX509Options (48 samples, 0.01%)add_eku (53 samples, 0.01%)SecPolicyCreateSSL_internal (226 samples, 0.05%)set_ssl_ekus (62 samples, 0.01%)security_framework::policy::SecPolicy::create_ssl (233 samples, 0.05%)_dispatch_root_queue_poke_slow (53 samples, 0.01%)_pthread_workqueue_addthreads (53 samples, 0.01%)__workq_kernreturn (53 samples, 0.01%)-[OS_dispatch_data dealloc] (64 samples, 0.01%)-[OS_xpc_object dealloc] (109 samples, 0.02%)_xpc_array_dispose (115 samples, 0.02%)-[OS_xpc_object dealloc] (129 samples, 0.03%)_xpc_dictionary_node_free (138 samples, 0.03%)_xpc_dictionary_dispose (150 samples, 0.03%)_xpc_array_dispose (155 samples, 0.03%)-[OS_xpc_object dealloc] (154 samples, 0.03%)-[OS_xpc_object dealloc] (171 samples, 0.04%)_xpc_array_dispose (175 samples, 0.04%)-[OS_xpc_object dealloc] (191 samples, 0.04%)_xpc_dictionary_node_free (194 samples, 0.04%)_xpc_dictionary_dispose (249 samples, 0.05%)-[OS_xpc_object dealloc] (263 samples, 0.06%)xpc_array_set_data (54 samples, 0.01%)xpc_data_create (48 samples, 0.01%)SecXPCDictionarySetCertificates (81 samples, 0.02%)_dispatch_root_queue_poke_slow (91 samples, 0.02%)_pthread_workqueue_addthreads (91 samples, 0.02%)__workq_kernreturn (88 samples, 0.02%)_CFDataCreateDispatchData (127 samples, 0.03%)dispatch_data_create (116 samples, 0.03%)_CFXPCCreateXPCObjectFromCFObject (212 samples, 0.05%)_CFXPCCreateXPCObjectFromCFObject (261 samples, 0.06%)_xpc_dictionary_insert (56 samples, 0.01%)__CFXPCDictionaryApplier (374 samples, 0.08%)-[__NSDictionaryM __apply:context:] (418 samples, 0.09%)_CFXPCCreateXPCObjectFromCFObject (452 samples, 0.10%)SecXPCDictionarySetPolicies (493 samples, 0.11%)__handle_trust_evaluate_xpc_block_invoke (607 samples, 0.13%)der_decode_plist (62 samples, 0.01%)SecXPCDictionaryCopyArray (68 samples, 0.01%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (64 samples, 0.01%)SecXPCDictionaryCopyArrayOptional (89 samples, 0.02%)__CFBasicHashAddValue (54 samples, 0.01%)CFBasicHashAddValue (77 samples, 0.02%)CFSetContainsValue (47 samples, 0.01%)DERParseSequenceContentToObject (60 samples, 0.01%)_CFURLCreateWithURLString (55 samples, 0.01%)CFURLCreateWithBytes (83 samples, 0.02%)SecCEPAuthorityInfoAccess (108 samples, 0.02%)CFURLCreateWithBytes (59 samples, 0.01%)SecCEPCrlDistributionPoints (73 samples, 0.02%)parseGeneralNamesContent (67 samples, 0.01%)appendCRLDPFromGeneralNames (66 samples, 0.01%)createNormalizedX501Name (80 samples, 0.02%)SecCertificateParse (676 samples, 0.15%)SecCertificateCreateWithBytes (721 samples, 0.16%)SecCertificateCreateWithXPCArrayAtIndex (722 samples, 0.16%)SecXPCDictionaryCopyChainOptional (770 samples, 0.17%)@objc _NSSwiftCalendar._date(from:) (167 samples, 0.04%)static DateComponents._unconditionallyBridgeFromObjectiveC(_:) (122 samples, 0.03%)specialized static DateComponents._conditionallyBridgeFromObjectiveC(_:result:) (103 samples, 0.02%)SecCFCalendarDoWithZuluCalendar (222 samples, 0.05%)_dispatch_lane_barrier_sync_invoke_and_complete (219 samples, 0.05%)_dispatch_client_callout (219 samples, 0.05%)__SecGregorianDateGetAbsoluteTime_block_invoke (219 samples, 0.05%)CFCalendarComposeAbsoluteTime (218 samples, 0.05%)der_decode_commontime_body (237 samples, 0.05%)der_decode_date (242 samples, 0.05%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (319 samples, 0.07%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (315 samples, 0.07%)der_decode_plist (315 samples, 0.07%)der_decode_dictionary (311 samples, 0.07%)der_decode_plist (275 samples, 0.06%)SecXPCDictionaryCopyDictionaryOptional (331 samples, 0.07%)__handle_trust_evaluate_xpc_block_invoke_2 (1,198 samples, 0.26%)_xpc_dictionary_serialize_apply (74 samples, 0.02%)_xpc_dictionary_serialize (80 samples, 0.02%)_xpc_dictionary_apply_node_f (79 samples, 0.02%)_xpc_array_serialize (83 samples, 0.02%)_xpc_array_serialize (103 samples, 0.02%)_xpc_dictionary_apply_node_f (121 samples, 0.03%)_xpc_dictionary_serialize_apply (118 samples, 0.03%)_xpc_dictionary_serialize (125 samples, 0.03%)_xpc_serializer_pack (230 samples, 0.05%)_xpc_connection_pack_message (236 samples, 0.05%)_dispatch_mach_send_drain (257 samples, 0.06%)_dispatch_mach_msg_send (256 samples, 0.06%)mach_msg2_internal (248 samples, 0.05%)mach_msg2_trap (248 samples, 0.05%)_dispatch_mach_send_msg (265 samples, 0.06%)dispatch_mach_send_with_result_and_wait_for_reply (427 samples, 0.09%)_dispatch_mach_send_and_wait_for_reply (427 samples, 0.09%)mach_msg (109 samples, 0.02%)mach_msg_overwrite (108 samples, 0.02%)mach_msg2_internal (106 samples, 0.02%)mach_msg2_trap (105 samples, 0.02%)security_fw_send_message_with_reply_sync_inner (730 samples, 0.16%)xpc_connection_send_message_with_reply_sync (725 samples, 0.16%)SecError (90 samples, 0.02%)SecCFCreateErrorWithFormatAndArguments (89 samples, 0.02%)CFStringCreateWithFormatAndArguments (56 samples, 0.01%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (53 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (103 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (101 samples, 0.02%)securityd_message_is_for_system_keychain (128 samples, 0.03%)__SecTrustEvaluateIfNecessary_block_invoke_3 (2,973 samples, 0.64%)securityd_send_sync_and_do (2,972 samples, 0.64%)securityd_message_with_reply_sync (145 samples, 0.03%)SecOSStatusWith (2,977 samples, 0.64%)__SecTrustEvaluateIfNecessary_block_invoke_2 (2,997 samples, 0.65%)SecTrustEvaluateIfNecessary (3,045 samples, 0.66%)_dispatch_lane_barrier_sync_invoke_and_complete (3,034 samples, 0.66%)_dispatch_client_callout (3,034 samples, 0.66%)__SecTrustEvaluateIfNecessary_block_invoke (3,034 samples, 0.66%)_os_activity_initiate_impl (3,032 samples, 0.66%)security_framework::trust::SecTrust::evaluate_with_error (3,049 samples, 0.66%)SecTrustEvaluateInternal (3,048 samples, 0.66%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (31,302 samples, 6.77%)<tokio_na..native_tls::imp::MidHandshakeTlsStream<S>::handshake (31,288 samples, 6.77%)native_tl..security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (31,280 samples, 6.77%)security_..tls_handshake_set_ciphersuites_internal (93 samples, 0.02%)tls_handshake_create_for_caller (121 samples, 0.03%)SSLCreateContextWithRecordFuncsAndPath (147 samples, 0.03%)SSLCreateContext (188 samples, 0.04%)SSLSetEnabledCiphers (80 samples, 0.02%)tls_handshake_set_ciphersuites_internal (48 samples, 0.01%)security_framework::secure_transport::ClientBuilder::configure_ciphers (105 samples, 0.02%)SSLHandshakeProceed (299 samples, 0.06%)SSLRecordServiceWriteQueueInternal (294 samples, 0.06%)security_framework::secure_transport::write_func (290 samples, 0.06%)tokio::io::poll_evented::PollEvented<E>::poll_write (289 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (286 samples, 0.06%)<&std::net::tcp::TcpStream as std::io::Write>::write (286 samples, 0.06%)__sendto (284 samples, 0.06%)SSLEncodeClientHello (110 samples, 0.02%)SSLPrepareAndQueueMessage (159 samples, 0.03%)SSLAdvanceHandshake (168 samples, 0.04%)SSLHandshakeStart (212 samples, 0.05%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (515 samples, 0.11%)SSLHandshake (514 samples, 0.11%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (833 samples, 0.18%)native_tls::imp::TlsConnector::connect (832 samples, 0.18%)security_framework::secure_transport::ClientBuilder::handshake (827 samples, 0.18%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (35,563 samples, 7.69%)<hyper_tls:..<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (35,614 samples, 7.70%)<hyper_util..reqwest::connect::with_timeout::_{{closure}} (35,601 samples, 7.70%)reqwest::co..reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (35,586 samples, 7.70%)reqwest::co..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (35,616 samples, 7.70%)<futures_ut..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (35,703 samples, 7.72%)<futures_ut..<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (35,788 samples, 7.74%)<futures_ut..hyper_util::client::legacy::client::Client<C,B>::connect_to::_{{closure}}::_{{closure}}::_{{closure}} (75 samples, 0.02%)__psynch_cvsignal (91 samples, 0.02%)pthread_cond_signal (92 samples, 0.02%)parking_lot::raw_mutex::RawMutex::unlock_slow (99 samples, 0.02%)tokio::runtime::blocking::pool::Spawner::spawn_task (115 samples, 0.02%)<reqwest::dns::gai::GaiResolver as reqwest::dns::resolve::Resolve>::resolve::_{{closure}} (136 samples, 0.03%)tokio::runtime::blocking::pool::spawn_blocking (125 samples, 0.03%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (152 samples, 0.03%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (152 samples, 0.03%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (203 samples, 0.04%)reqwest::connect::with_timeout::_{{closure}} (177 samples, 0.04%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (173 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (208 samples, 0.04%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (206 samples, 0.04%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (205 samples, 0.04%)<hyper_util::common::lazy::Lazy<F,R> as core::future::future::Future>::poll (216 samples, 0.05%)hyper_util::client::legacy::pool::PoolInner<T,K>::put (54 samples, 0.01%)<hyper_util::client::legacy::pool::Pooled<T,K> as core::ops::drop::Drop>::drop (62 samples, 0.01%)core::ptr::drop_in_place<hyper_util::client::legacy::pool::Pooled<hyper_util::client::legacy::client::PoolClient<reqwest::async_impl::body::Body>,(http::uri::scheme::Scheme,http::uri::authority::Authority)>> (65 samples, 0.01%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (36,365 samples, 7.87%)<reqwest::a..hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (36,322 samples, 7.86%)hyper_util:..<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (36,377 samples, 7.87%)<tower::ret..socket2::socket::Socket::new (65 samples, 0.01%)socket (52 samples, 0.01%)hyper_util::client::legacy::connect::http::connect (81 samples, 0.02%)socket2::socket::Socket::connect (475 samples, 0.10%)__connect (475 samples, 0.10%)<core::pin::Pin<P> as core::future::future::Future>::poll (576 samples, 0.12%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (622 samples, 0.13%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (153 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (153 samples, 0.03%)__recvfrom (153 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (157 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_read (156 samples, 0.03%)security_framework::secure_transport::read_func (159 samples, 0.03%)SSLRecordReadInternal (173 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (140 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Write>::write (140 samples, 0.03%)__sendto (140 samples, 0.03%)security_framework::secure_transport::write_func (144 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_write (143 samples, 0.03%)SSLRecordServiceWriteQueueInternal (145 samples, 0.03%)ccn_mulmod_p256 (151 samples, 0.03%)ccn_cond_add (64 samples, 0.01%)cczp_sub_default_ws (103 samples, 0.02%)ccec_mult_XYCZaddC_ws (307 samples, 0.07%)ccn_mulmod_p256 (117 samples, 0.03%)cczp_sub_default_ws (77 samples, 0.02%)ccec_mult_XYCZadd_ws (215 samples, 0.05%)ccec_mult_default_ws (593 samples, 0.13%)ccec_mult_blinded_ws (604 samples, 0.13%)ccecdh_compute_shared_secret (635 samples, 0.14%)ccecdh_compute_shared_secret_ws (632 samples, 0.14%)ccn_mulmod_p256 (169 samples, 0.04%)ccn_cond_add (48 samples, 0.01%)cczp_sub_default_ws (106 samples, 0.02%)ccec_mult_XYCZaddC_ws (338 samples, 0.07%)ccn_mulmod_p256 (113 samples, 0.02%)cczp_sub_default_ws (73 samples, 0.02%)ccec_mult_XYCZadd_ws (209 samples, 0.05%)ccec_mult_default_ws (632 samples, 0.14%)ccec_make_pub_from_priv_ws (668 samples, 0.14%)ccec_mult_blinded_ws (650 samples, 0.14%)ccec_generate_key_internal_fips_ws (670 samples, 0.14%)ccn_mulmod_p256 (153 samples, 0.03%)ccn_cond_add (63 samples, 0.01%)cczp_sub_default_ws (119 samples, 0.03%)ccec_mult_XYCZaddC_ws (332 samples, 0.07%)ccn_mulmod_p256 (141 samples, 0.03%)cczp_sub_default_ws (79 samples, 0.02%)ccec_mult_XYCZadd_ws (240 samples, 0.05%)ccec_mult_default_ws (644 samples, 0.14%)ccec_mult_blinded_ws (651 samples, 0.14%)ccec_sign_internal_ws (724 samples, 0.16%)ccec_sign_internal_inner_ws (719 samples, 0.16%)ccec_sign_composite_msg_ws (728 samples, 0.16%)ccec_sign_composite_ws (725 samples, 0.16%)ccn_mulmod_p256 (144 samples, 0.03%)ccn_mux (56 samples, 0.01%)cczp_add_default_ws (136 samples, 0.03%)cczp_sub_default_ws (62 samples, 0.01%)ccec_double_ws (369 samples, 0.08%)ccn_mulmod_p256 (47 samples, 0.01%)ccec_add_normalized_ws (90 samples, 0.02%)ccec_full_add_normalized_ws (94 samples, 0.02%)ccec_add_normalized_ws (86 samples, 0.02%)ccec_full_sub_normalized_ws (91 samples, 0.02%)ccec_twin_mult_ws (613 samples, 0.13%)ccec_generate_key_fips_ws (2,082 samples, 0.45%)ccec_pairwise_consistency_check_ws (1,412 samples, 0.31%)ccec_verify_composite_msg_ws (681 samples, 0.15%)ccec_verify_composite_digest_ws (681 samples, 0.15%)ccec_verify_internal_with_base_ws (681 samples, 0.15%)sslEcdhCreateKey (2,089 samples, 0.45%)ccec_generate_key (2,087 samples, 0.45%)SSLEncodeKeyExchange (2,732 samples, 0.59%)SSLPrepareAndQueueMessage (2,749 samples, 0.59%)tls_handshake_continue (2,785 samples, 0.60%)SSLAdvanceHandshake (2,784 samples, 0.60%)_asl_mt_shim_send_message (53 samples, 0.01%)asl_log (110 samples, 0.02%)_asl_lib_vlog (108 samples, 0.02%)_asl_send_message (108 samples, 0.02%)tls_metric_event_add_string (116 samples, 0.03%)SSLAdvanceHandshake (143 samples, 0.03%)tls_metric_client_finished (137 samples, 0.03%)ccn_mulmod_p256 (129 samples, 0.03%)ccn_mux (51 samples, 0.01%)cczp_add_default_ws (136 samples, 0.03%)cczp_sub_default_ws (52 samples, 0.01%)ccec_double_ws (338 samples, 0.07%)ccn_mulmod_p256 (50 samples, 0.01%)ccec_add_normalized_ws (103 samples, 0.02%)ccec_full_add_normalized_ws (112 samples, 0.02%)ccec_add_normalized_ws (77 samples, 0.02%)ccec_full_sub_normalized_ws (83 samples, 0.02%)ccec_twin_mult_ws (595 samples, 0.13%)cczp_inv_default_ws (56 samples, 0.01%)SSLVerifySignedServerKeyExchangeTls12 (705 samples, 0.15%)sslRawVerify (700 samples, 0.15%)ccec_verify (699 samples, 0.15%)ccec_verify_digest_ws (698 samples, 0.15%)ccec_verify_internal_with_base_ws (696 samples, 0.15%)SSLProcessHandshakeMessage (725 samples, 0.16%)SSLProcessServerKeyExchange (706 samples, 0.15%)SecECKeyCopyPublicBits (47 samples, 0.01%)SecKeyCopyPublicBytes (47 samples, 0.01%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (72 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (72 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (137 samples, 0.03%)SecECKeyGetNamedCurve (157 samples, 0.03%)SecKeyCopyAttributes (148 samples, 0.03%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (67 samples, 0.01%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (70 samples, 0.02%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (68 samples, 0.01%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (71 samples, 0.02%)CSSM_CL_CertGetFirstCachedFieldValue (75 samples, 0.02%)DecodedCert::DecodedCert(AppleX509CLSession&, Security::CssmData const&) (77 samples, 0.02%)SEC_ASN1Decode (47 samples, 0.01%)AppleX509CLSession::CertCache(Security::CssmData const&, long&) (79 samples, 0.02%)CSSM_CL_CertCache (85 samples, 0.02%)cssm_CertCache(long, cssm_data const*, long*) (83 samples, 0.02%)Security::KeychainCore::Certificate::certHandle() (89 samples, 0.02%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (194 samples, 0.04%)Security::KeychainCore::Certificate::publicKey() (206 samples, 0.04%)SecTrustCopyPublicKey (231 samples, 0.05%)SecCertificateCopyPublicKey$LEGACYMAC (231 samples, 0.05%)SecCertificateParse (160 samples, 0.03%)SecCertificateCreateWithData (172 samples, 0.04%)tls_handshake_message_callback (723 samples, 0.16%)tls_helper_set_peer_pubkey (721 samples, 0.16%)tls_helper_create_cfarray_from_certificates (187 samples, 0.04%)SecPolicyCreateSSL_internal (48 samples, 0.01%)SecCertificateParse (111 samples, 0.02%)SecCertificateCreateWithData (117 samples, 0.03%)SSLProcessHandshakeRecordInner (1,832 samples, 0.40%)tls_verify_peer_cert (184 samples, 0.04%)sslCreateSecTrust (184 samples, 0.04%)tls_helper_create_peer_trust (184 samples, 0.04%)tls_helper_create_cfarray_from_certificates (121 samples, 0.03%)SSLHandshake (4,944 samples, 1.07%)SSLHandshakeProceed (4,943 samples, 1.07%)tls_handshake_process (1,836 samples, 0.40%)-[OS_xpc_object dealloc] (47 samples, 0.01%)__CFXPCDictionaryApplier (57 samples, 0.01%)-[__NSDictionaryM __apply:context:] (68 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (73 samples, 0.02%)SecXPCDictionarySetPolicies (79 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke (91 samples, 0.02%)SecCertificateParse (127 samples, 0.03%)SecCertificateCreateWithBytes (142 samples, 0.03%)SecCertificateCreateWithXPCArrayAtIndex (143 samples, 0.03%)SecXPCDictionaryCopyChainOptional (150 samples, 0.03%)_dispatch_lane_barrier_sync_invoke_and_complete (50 samples, 0.01%)_dispatch_client_callout (50 samples, 0.01%)__SecGregorianDateGetAbsoluteTime_block_invoke (50 samples, 0.01%)CFCalendarComposeAbsoluteTime (50 samples, 0.01%)SecCFCalendarDoWithZuluCalendar (51 samples, 0.01%)der_decode_date (55 samples, 0.01%)der_decode_commontime_body (54 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (96 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (96 samples, 0.02%)der_decode_plist (96 samples, 0.02%)der_decode_dictionary (95 samples, 0.02%)der_decode_plist (69 samples, 0.01%)SecXPCDictionaryCopyDictionaryOptional (98 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke_2 (276 samples, 0.06%)_dispatch_mach_send_msg (52 samples, 0.01%)_dispatch_mach_send_drain (52 samples, 0.01%)_dispatch_mach_msg_send (52 samples, 0.01%)mach_msg2_internal (50 samples, 0.01%)mach_msg2_trap (50 samples, 0.01%)security_fw_send_message_with_reply_sync_inner (122 samples, 0.03%)xpc_connection_send_message_with_reply_sync (122 samples, 0.03%)dispatch_mach_send_with_result_and_wait_for_reply (83 samples, 0.02%)_dispatch_mach_send_and_wait_for_reply (83 samples, 0.02%)SecOSStatusWith (575 samples, 0.12%)__SecTrustEvaluateIfNecessary_block_invoke_3 (575 samples, 0.12%)securityd_send_sync_and_do (575 samples, 0.12%)__SecTrustEvaluateIfNecessary_block_invoke_2 (576 samples, 0.12%)security_framework::trust::SecTrust::evaluate_with_error (581 samples, 0.13%)SecTrustEvaluateInternal (581 samples, 0.13%)SecTrustEvaluateIfNecessary (580 samples, 0.13%)_dispatch_lane_barrier_sync_invoke_and_complete (578 samples, 0.13%)_dispatch_client_callout (578 samples, 0.13%)__SecTrustEvaluateIfNecessary_block_invoke (578 samples, 0.13%)_os_activity_initiate_impl (577 samples, 0.12%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (5,585 samples, 1.21%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (5,581 samples, 1.21%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (5,581 samples, 1.21%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (118 samples, 0.03%)native_tls::imp::TlsConnector::connect (118 samples, 0.03%)security_framework::secure_transport::ClientBuilder::handshake (118 samples, 0.03%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (72 samples, 0.02%)SSLHandshake (72 samples, 0.02%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (6,331 samples, 1.37%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (6,357 samples, 1.38%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (6,345 samples, 1.37%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (6,341 samples, 1.37%)reqwest::connect::with_timeout::_{{closure}} (6,338 samples, 1.37%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (6,337 samples, 1.37%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (6,363 samples, 1.38%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (6,466 samples, 1.40%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (6,460 samples, 1.40%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (6,467 samples, 1.40%)<tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (6,475 samples, 1.40%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (43,097 samples, 9.32%)<reqwest::asy..url::ParseOptions::parse (54 samples, 0.01%)url::parser::Parser::parse_url (47 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (84 samples, 0.02%)core::ptr::drop_in_place<tower_http::follow_redirect::FollowRedirect<tower::retry::Retry<reqwest::retry::Policy,reqwest::async_impl::client::HyperService>,reqwest::redirect::TowerRedirectPolicy>> (67 samples, 0.01%)pthread_cond_signal (47 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (56 samples, 0.01%)core::ptr::drop_in_place<hyper::body::incoming::Incoming> (69 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (62 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (62 samples, 0.01%)tokio::runtime::context::with_scheduler (62 samples, 0.01%)core::ptr::drop_in_place<http_body_util::combinators::map_err::MapErr<reqwest::async_impl::body::TotalTimeoutBody<http_body_util::combinators::box_body::BoxBody<bytes::bytes::Bytes,alloc::boxed::Box<dyn core::error::Error+core::marker::Send+core::marker::Sync>>>,reqwest::async_impl::body::box_err<reqwest::error::Error>>> (74 samples, 0.02%)core::ptr::drop_in_place<http_body_util::combinators::collect::Collect<http_body_util::combinators::box_body::BoxBody<bytes::bytes::Bytes,alloc::boxed::Box<dyn core::error::Error+core::marker::Send+core::marker::Sync>>>> (79 samples, 0.02%)core::ptr::drop_in_place<reqwest::async_impl::client::Pending> (54 samples, 0.01%)hyper_util::client::proxy::matcher::Builder::from_env (77 samples, 0.02%)mach_port_deallocate (108 samples, 0.02%)_kernelrpc_mach_port_deallocate_trap (107 samples, 0.02%)__SCDynamicStoreDeallocate (143 samples, 0.03%)_CFRelease (146 samples, 0.03%)__CFStringAppendFormatCore (70 samples, 0.02%)SCDynamicStoreKeyCreateNetworkGlobalEntity (107 samples, 0.02%)CFStringCreateWithFormat (107 samples, 0.02%)CFStringCreateWithFormatAndArguments (105 samples, 0.02%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (104 samples, 0.02%)__108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke (47 samples, 0.01%)-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] (89 samples, 0.02%)-[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] (85 samples, 0.02%)_CFPreferencesCopyAppValueWithContainerAndConfiguration (101 samples, 0.02%)__CFBinaryPlistCreateObjectFiltered (124 samples, 0.03%)____CFBinaryPlistCreateObjectFiltered_block_invoke (77 samples, 0.02%)__CFBinaryPlistCreateObjectFiltered (203 samples, 0.04%)__CFBinaryPlistCreateObjectFiltered (283 samples, 0.06%)__CFBinaryPlistCreateObjectFiltered (306 samples, 0.07%)CFPropertyListCreateWithData (361 samples, 0.08%)_CFPropertyListCreateWithData (361 samples, 0.08%)__CFTryParseBinaryPlist (359 samples, 0.08%)mach_vm_deallocate (92 samples, 0.02%)_kernelrpc_mach_vm_deallocate_trap (91 samples, 0.02%)_SCUnserialize (465 samples, 0.10%)mach_msg (400 samples, 0.09%)mach_msg_overwrite (396 samples, 0.09%)mach_msg2_internal (396 samples, 0.09%)mach_msg2_trap (396 samples, 0.09%)configget (404 samples, 0.09%)__SCDynamicStoreCopyValueCommon (900 samples, 0.19%)-[__NSDictionaryM objectForKey:] (55 samples, 0.01%)-[__NSDictionaryI __apply:context:] (223 samples, 0.05%)normalize_scoped_proxy (221 samples, 0.05%)__SCNetworkProxiesCopyNormalized (212 samples, 0.05%)validate_proxy_content (66 samples, 0.01%)SCDynamicStoreCopyProxiesWithOptions (1,490 samples, 0.32%)__SCNetworkProxiesCopyNormalized (342 samples, 0.07%)system_configuration::dynamic_store::SCDynamicStore::get_proxies (1,494 samples, 0.32%)__CFStringAppendFormatCore (75 samples, 0.02%)CFStringCreateWithFormat (106 samples, 0.02%)CFStringCreateWithFormatAndArguments (105 samples, 0.02%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (105 samples, 0.02%)__CFBasicHashDrain (80 samples, 0.02%)_CFRelease (96 samples, 0.02%)__CFBinaryPlistWriteOrPresize (226 samples, 0.05%)CFPropertyListWrite (271 samples, 0.06%)CFPropertyListCreateData (296 samples, 0.06%)_SCSerialize (298 samples, 0.06%)mach_msg2_internal (354 samples, 0.08%)mach_msg2_trap (354 samples, 0.08%)mach_msg (356 samples, 0.08%)mach_msg_overwrite (355 samples, 0.08%)configopen (363 samples, 0.08%)__SCDynamicStoreAddSession (709 samples, 0.15%)SCDynamicStoreCreateWithOptions (885 samples, 0.19%)__SCDynamicStoreCreateInternal (67 samples, 0.01%)hyper_util::client::proxy::matcher::Matcher::from_system (2,725 samples, 0.59%)hyper_util::client::proxy::matcher::mac::with_system (2,616 samples, 0.57%)system_configuration::dynamic_store::SCDynamicStoreBuilder<T>::build (927 samples, 0.20%)system_configuration::dynamic_store::SCDynamicStore::create (887 samples, 0.19%)reqwest::async_impl::client::ClientBuilder::build (2,802 samples, 0.61%)<reqwest::redirect::TowerRedirectPolicy as tower_http::follow_redirect::policy::Policy<reqwest::async_impl::body::Body,reqwest::error::Error>>::on_request (52 samples, 0.01%)torii_common::token_uri::fetch_http_with_retry::_{{closure}} (46,487 samples, 10.06%)torii_common::t..reqwest::async_impl::request::RequestBuilder::send (143 samples, 0.03%)reqwest::async_impl::client::Client::execute_request (141 samples, 0.03%)_realloc (48 samples, 0.01%)<alloc::string::String as core::iter::traits::collect::FromIterator<char>>::from_iter (218 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (56 samples, 0.01%)alloc::raw_vec::finish_grow (53 samples, 0.01%)torii_common::token_uri::resolve_metadata::_{{closure}} (47,199 samples, 10.21%)torii_common::t..torii_common::token_uri::sanitize_json_string (403 samples, 0.09%)torii_common::token_uri::TokenUriService::run::_{{closure}}::_{{closure}} (66,396 samples, 14.36%)torii_common::token_ur..core::hash::BuildHasher::hash_one (77 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (67 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (125 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::remove (52 samples, 0.01%)tokio::runtime::task::harness::Harness<T,S>::drop_join_handle_slow (97 samples, 0.02%)tokio::runtime::task::state::State::transition_to_join_handle_dropped (92 samples, 0.02%)tokio::sync::mpsc::chan::Rx<T,S>::recv (67 samples, 0.01%)_platform_memmove (134 samples, 0.03%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_option_task_without_yield (79 samples, 0.02%)tokio::runtime::context::with_scheduler (78 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (54 samples, 0.01%)_malloc_zone_memalign (71 samples, 0.02%)__rustc::__rdl_alloc (74 samples, 0.02%)_posix_memalign (72 samples, 0.02%)_platform_memmove (76 samples, 0.02%)tokio::runtime::task::core::Cell<T,S>::new (172 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::Handle::bind_new_task (291 samples, 0.06%)torii_common::token_uri::TokenUriService::run::_{{closure}} (834 samples, 0.18%)tokio::task::spawn::spawn (429 samples, 0.09%)<deduplicated_symbol> (387,980 samples, 83.92%)<deduplicated_symbol><hyper::proto::h1::dispatch::Client<B> as hyper::proto::h1::dispatch::Dispatch>::recv_msg (47 samples, 0.01%)<deduplicated_symbol> (86 samples, 0.02%)hyper::body::incoming::Sender::poll_ready (169 samples, 0.04%)atomic_waker::AtomicWaker::register (51 samples, 0.01%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (355 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (64 samples, 0.01%)hyper::body::incoming::Sender::try_send_data (369 samples, 0.08%)hyper::client::dispatch::Receiver<T,U>::poll_recv (65 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (127 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (127 samples, 0.03%)__recvfrom (126 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (141 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_read (141 samples, 0.03%)SSLRecordReadInternal (144 samples, 0.03%)security_framework::secure_transport::read_func (143 samples, 0.03%)<deduplicated_symbol> (155 samples, 0.03%)SSLRead (149 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (180 samples, 0.04%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (179 samples, 0.04%)hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify (194 samples, 0.04%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (194 samples, 0.04%)_xzm_xzone_malloc_tiny (63 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (142 samples, 0.03%)_xzm_free (52 samples, 0.01%)SSLRecordFreeInternal (138 samples, 0.03%)_xzm_xzone_malloc_small_freelist (62 samples, 0.01%)__recvfrom (16,458 samples, 3.56%)__re..<&std::net::tcp::TcpStream as std::io::Read>::read (16,568 samples, 3.58%)<&st..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (16,581 samples, 3.59%)<&mi..tokio::runtime::io::registration::Registration::poll_ready (92 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_read (16,724 samples, 3.62%)toki..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (16,766 samples, 3.63%)<hyp..security_framework::secure_transport::read_func (16,806 samples, 3.64%)secu..timingsafe_enable_if_supported (137 samples, 0.03%)cc_cmp_safe_internal (167 samples, 0.04%)ccmode_gcm_finalize (221 samples, 0.05%)timingsafe_enable_if_supported (82 samples, 0.02%)ccgcm_finalize (355 samples, 0.08%)timingsafe_restore_if_supported (49 samples, 0.01%)timingsafe_enable_if_supported (87 samples, 0.02%)ccgcm_inc_iv (216 samples, 0.05%)timingsafe_restore_if_supported (106 samples, 0.02%)timingsafe_enable_if_supported (87 samples, 0.02%)ccgcm_reset (163 samples, 0.04%)Decrypt_Main_Loop (4,144 samples, 0.90%)ccaes_vng_gcm_decrypt (4,246 samples, 0.92%)timingsafe_enable_if_supported (89 samples, 0.02%)ccgcm_update (4,407 samples, 0.95%)timingsafe_restore_if_supported (68 samples, 0.01%)CCSymmAEADDecrypt (5,164 samples, 1.12%)SSLDecryptRecord (5,191 samples, 1.12%)_platform_memmove (1,763 samples, 0.38%)timingsafe_enable_if_supported (87 samples, 0.02%)ccgcm_gmac (164 samples, 0.04%)timingsafe_restore_if_supported (51 samples, 0.01%)ccaes_arm_encrypt_key (50 samples, 0.01%)ccaes_arm_encrypt_key128 (49 samples, 0.01%)ccmode_gcm_reset (48 samples, 0.01%)gcm_init (151 samples, 0.03%)ccmode_gcm_init (256 samples, 0.06%)ccmode_gcm_set_iv (59 samples, 0.01%)timingsafe_enable_if_supported (206 samples, 0.04%)ccgcm_init_with_iv (808 samples, 0.17%)timingsafe_restore_if_supported (218 samples, 0.05%)tls_record_decrypt (8,018 samples, 1.73%)SSLRecordReadInternal (25,100 samples, 5.43%)SSLReco.._platform_memmove (645 samples, 0.14%)SSLRead (25,974 samples, 5.62%)SSLRead<deduplicated_symbol> (26,078 samples, 5.64%)<dedupl..__bzero (510 samples, 0.11%)_platform_memset (786 samples, 0.17%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (27,827 samples, 6.02%)<hyper_u..<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (27,814 samples, 6.02%)<tokio_n.._xzm_reclaim_mark_used_locked (107 samples, 0.02%)mach_vm_reclaim_try_cancel (104 samples, 0.02%)mach_absolute_time (74 samples, 0.02%)_xzm_reclaim_mark_used (257 samples, 0.06%)mach_vm_reclaim_update_kernel_accounting (147 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (139 samples, 0.03%)xzm_chunk_mark_used (278 samples, 0.06%)_xzm_xzone_find_and_malloc_from_freelist_chunk (313 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (363 samples, 0.08%)_xzm_xzone_malloc_small_freelist (131 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (574 samples, 0.12%)<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (28,619 samples, 6.19%)<hyper::..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (28,459 samples, 6.16%)hyper::p..hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (28,903 samples, 6.25%)hyper::p..hyper::proto::h1::decode::Decoder::decode (28,665 samples, 6.20%)hyper::p..http::header::map::HeaderMap<T>::try_append2 (48 samples, 0.01%)http::header::name::HeaderName::from_bytes (78 samples, 0.02%)http::header::name::StandardHeader::from_bytes (49 samples, 0.01%)httparse::parse_headers_iter_uninit (49 samples, 0.01%)httparse::Response::parse_with_config_and_uninit_headers (61 samples, 0.01%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (290 samples, 0.06%)__recvfrom (625 samples, 0.14%)<&std::net::tcp::TcpStream as std::io::Read>::read (627 samples, 0.14%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (628 samples, 0.14%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (639 samples, 0.14%)tokio::io::poll_evented::PollEvented<E>::poll_read (638 samples, 0.14%)security_framework::secure_transport::read_func (644 samples, 0.14%)SSLDecryptRecord (47 samples, 0.01%)tls_record_decrypt (110 samples, 0.02%)SSLRecordReadInternal (796 samples, 0.17%)SSLRead (820 samples, 0.18%)<deduplicated_symbol> (833 samples, 0.18%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (889 samples, 0.19%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (889 samples, 0.19%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (1,212 samples, 0.26%)hyper::proto::h1::io::Buffered<T,B>::parse (1,190 samples, 0.26%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (893 samples, 0.19%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (63 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (63 samples, 0.01%)__recvfrom (63 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_read (77 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (82 samples, 0.02%)security_framework::secure_transport::read_func (88 samples, 0.02%)SSLRecordReadInternal (95 samples, 0.02%)SSLRead (105 samples, 0.02%)<deduplicated_symbol> (129 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (241 samples, 0.05%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (237 samples, 0.05%)_platform_memset (88 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_keep_alive (268 samples, 0.06%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (257 samples, 0.06%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::encode (59 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::write_head (70 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1,121 samples, 0.24%)<&std::net::tcp::TcpStream as std::io::Write>::write (1,118 samples, 0.24%)__sendto (1,113 samples, 0.24%)tokio::io::poll_evented::PollEvented<E>::poll_write (1,126 samples, 0.24%)SSLRecordServiceWriteQueueInternal (1,143 samples, 0.25%)security_framework::secure_transport::write_func (1,129 samples, 0.24%)CCSymmAEADEncrypt (66 samples, 0.01%)tls_record_encrypt (104 samples, 0.02%)SSLRecordWriteInternal (119 samples, 0.03%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (1,271 samples, 0.27%)tokio_native_tls::TlsStream<S>::with_context (1,267 samples, 0.27%)SSLWrite (1,264 samples, 0.27%)hyper::proto::h1::io::Buffered<T,B>::poll_flush (1,426 samples, 0.31%)tokio_native_tls::TlsStream<S>::with_context (113 samples, 0.02%)SSLRecordServiceWriteQueueInternal (577 samples, 0.12%)security_framework::secure_transport::write_func (574 samples, 0.12%)tokio::io::poll_evented::PollEvented<E>::poll_write (573 samples, 0.12%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (572 samples, 0.12%)<&std::net::tcp::TcpStream as std::io::Write>::write (571 samples, 0.12%)__sendto (571 samples, 0.12%)hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (33,427 samples, 7.23%)hyper::pro..tokio_native_tls::TlsStream<S>::with_context (641 samples, 0.14%)SSLClose (639 samples, 0.14%)tls_handshake_close (59 samples, 0.01%)SSLSendAlert (57 samples, 0.01%)<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (33,458 samples, 7.24%)<hyper::cl..__CFURLDeallocate (82 samples, 0.02%)_CFRelease (112 samples, 0.02%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (136 samples, 0.03%)-[__NSArrayM dealloc] (155 samples, 0.03%)_CFRelease (80 samples, 0.02%)SecCertificateDestroy (308 samples, 0.07%)_CFRelease (344 samples, 0.07%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (356 samples, 0.08%)-[__NSArrayM dealloc] (363 samples, 0.08%)-[__NSDictionaryM dealloc] (66 samples, 0.01%)cow_cleanup (62 samples, 0.01%)_CFRelease (73 samples, 0.02%)-[__NSSingleObjectArrayI dealloc] (86 samples, 0.02%)_CFRelease (79 samples, 0.02%)SecTrustDestroy (576 samples, 0.12%)_CFRelease (580 samples, 0.13%)tls_handshake_destroy (135 samples, 0.03%)SSLContextDestroy (758 samples, 0.16%)_CFRelease (765 samples, 0.17%)close (362 samples, 0.08%)<mio::net::udp::UdpSocket as mio::event::source::Source>::deregister (62 samples, 0.01%)kevent (62 samples, 0.01%)tokio::runtime::io::driver::Handle::deregister_source (74 samples, 0.02%)<tokio::io::poll_evented::PollEvented<E> as core::ops::drop::Drop>::drop (440 samples, 0.10%)core::ptr::drop_in_place<security_framework::secure_transport::Connection<tokio_native_tls::AllowStd<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (446 samples, 0.10%)core::ptr::drop_in_place<hyper_util::rt::tokio::TokioIo<tokio_native_tls::TlsStream<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (1,221 samples, 0.26%)core::ptr::drop_in_place<futures_util::future::try_future::into_future::IntoFuture<hyper::client::conn::http1::upgrades::UpgradeableConnection<reqwest::connect::sealed::Conn,reqwest::async_impl::body::Body>>> (1,264 samples, 0.27%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (34,756 samples, 7.52%)<futures_u..<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (34,792 samples, 7.53%)<futures_u..hyper_util::client::legacy::pool::IdleTask<T,K>::run::_{{closure}} (52 samples, 0.01%)<deduplicated_symbol> (105 samples, 0.02%)tokio::runtime::task::harness::Harness<T,S>::complete (180 samples, 0.04%)tokio::runtime::task::harness::Harness<T,S>::poll (423,315 samples, 91.57%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::scheduler::multi_thread::worker::Context::run_task (424,458 samples, 91.81%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::scheduler::multi_thread::worker::Context::run (434,067 samples, 93.89%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::run (434,089 samples, 93.90%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (434,089 samples, 93.90%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (434,089 samples, 93.90%)tokio::runtime::context::scoped::Scoped<T>::set<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (450,293 samples, 97.40%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::task::core::Core<T,S>::poll (450,295 samples, 97.40%)tokio::runtime::task::core::Core<T,S>::polltokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (82 samples, 0.02%)tokio::runtime::context::with_scheduler (81 samples, 0.02%)tokio::runtime::task::harness::Harness<T,S>::complete (90 samples, 0.02%)tokio::runtime::task::harness::Harness<T,S>::poll (450,389 samples, 97.42%)tokio::runtime::task::harness::Harness<T,S>::pollcore::ops::function::FnOnce::call_once{{vtable.shim}} (454,241 samples, 98.26%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (454,241 samples, 98.26%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (450,544 samples, 97.46%)tokio::runtime::blocking::pool::Inner::runall (462,303 samples, 100%)thread_start (454,244 samples, 98.26%)thread_start_pthread_start (454,244 samples, 98.26%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (454,243 samples, 98.26%)std::sys::pal::unix::thread::Thread::new::thread_start \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-2.svg b/bins/torii-tokens/flamegraph-2.svg new file mode 100644 index 0000000..3d2a030 --- /dev/null +++ b/bins/torii-tokens/flamegraph-2.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch qos_class_main (5 samples, 0.01%)start_wqthread (5 samples, 0.01%)dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (4 samples, 0.01%)_free (4 samples, 0.01%)_xzm_free (9 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (4 samples, 0.01%)__psynch_cvwait (75 samples, 0.20%)_pthread_cond_wait (6 samples, 0.02%)tokio::runtime::park::Inner::park (97 samples, 0.26%)parking_lot::condvar::Condvar::wait_until_internal (93 samples, 0.25%)_free (13 samples, 0.03%)_pthread_mutex_firstfit_unlock_slow (6 samples, 0.02%)__psynch_mutexdrop (6 samples, 0.02%)pthread_mutex_unlock (9 samples, 0.02%)_pthread_mutex_firstfit_lock_slow (6 samples, 0.02%)__psynch_mutexwait (6 samples, 0.02%)flume::Shared<T>::recv (25 samples, 0.07%)std::sys::pal::unix::sync::mutex::Mutex::lock (7 samples, 0.02%)_pthread_mutex_firstfit_unlock_slow (10 samples, 0.03%)__psynch_mutexdrop (10 samples, 0.03%)_xzm_free (13 samples, 0.03%)mach_absolute_time (4 samples, 0.01%)flume::async::RecvFut<T>::reset_hook (46 samples, 0.12%)std::sys::pal::unix::sync::mutex::Mutex::lock (5 samples, 0.01%)pthread_mutex_lock (4 samples, 0.01%)pthread_mutex_unlock (16 samples, 0.04%)_pthread_mutex_firstfit_lock_slow (15 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (169 samples, 0.45%)std::sys::pal::unix::sync::mutex::Mutex::lock (34 samples, 0.09%)pthread_mutex_lock (18 samples, 0.05%)pthread_mutex_unlock (19 samples, 0.05%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (274 samples, 0.74%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (267 samples, 0.72%)std::sys::pal::unix::sync::mutex::Mutex::lock (11 samples, 0.03%)pthread_mutex_lock (6 samples, 0.02%)pthread_mutex_unlock (6 samples, 0.02%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (322 samples, 0.86%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (303 samples, 0.81%)std::sys::pal::unix::sync::mutex::Mutex::lock (10 samples, 0.03%)pthread_mutex_lock (8 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (339 samples, 0.91%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::type_info (4 samples, 0.01%)_free (6 samples, 0.02%)_xzm_free (32 samples, 0.09%)<deduplicated_symbol> (4 samples, 0.01%)_xzm_xzone_malloc (5 samples, 0.01%)_platform_memmove (5 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.01%)_xzm_free (7 samples, 0.02%)_malloc_zone_realloc (32 samples, 0.09%)xzm_realloc (24 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (47 samples, 0.13%)alloc::raw_vec::finish_grow (44 samples, 0.12%)_realloc (43 samples, 0.12%)xzm_malloc_zone_size (5 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (59 samples, 0.16%)core::fmt::write (69 samples, 0.19%)alloc::fmt::format::format_inner (88 samples, 0.24%)core::hash::BuildHasher::hash_one (6 samples, 0.02%)DYLD-STUB$$free (10 samples, 0.03%)_free (12 samples, 0.03%)_xzm_free (51 samples, 0.14%)_platform_memset (10 samples, 0.03%)_xzm_xzone_madvise_batch (6 samples, 0.02%)xzm_reclaim_mark_free_locked (6 samples, 0.02%)_xzm_free (5 samples, 0.01%)pthread_mutex_unlock (9 samples, 0.02%)_xzm_free (33 samples, 0.09%)malloc_zone_free (6 samples, 0.02%)pthread_mutex_lock (19 samples, 0.05%)sqlite3MemSize (31 samples, 0.08%)xzm_malloc_zone_size (27 samples, 0.07%)_xzm_free (5 samples, 0.01%)malloc_zone_free (4 samples, 0.01%)pthread_mutex_unlock (8 samples, 0.02%)_xzm_free (25 samples, 0.07%)malloc_zone_free (5 samples, 0.01%)pthread_mutex_lock (5 samples, 0.01%)sqlite3ValueFree (201 samples, 0.54%)vdbeMemClear (90 samples, 0.24%)sqlite3DbFreeNN (67 samples, 0.18%)sqlite3MemSize (20 samples, 0.05%)xzm_malloc_zone_size (16 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (225 samples, 0.60%)core::ptr::drop_in_place<sqlx_sqlite::row::SqliteRow> (315 samples, 0.85%)core::hash::BuildHasher::hash_one (67 samples, 0.18%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (34 samples, 0.09%)hashbrown::map::HashMap<K,V,S,A>::insert (194 samples, 0.52%)hashbrown::raw::RawTable<T,A>::reserve_rehash (88 samples, 0.24%)core::hash::BuildHasher::hash_one (53 samples, 0.14%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (38 samples, 0.10%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::is_null (9 samples, 0.02%)sqlite3_value_type (4 samples, 0.01%)<sqlx_sqlite::value::SqliteValueRef as sqlx_core::value::ValueRef>::type_info (4 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)_xzm_xzone_malloc (4 samples, 0.01%)core::str::converts::from_utf8 (8 samples, 0.02%)sqlx_sqlite::types::str::_<impl sqlx_core::decode::Decode<sqlx_sqlite::database::Sqlite> for alloc::string::String>::decode (52 samples, 0.14%)sqlx_sqlite::value::ValueHandle::text (21 samples, 0.06%)sqlite3_value_bytes (7 samples, 0.02%)sqlx_core::row::Row::try_get (83 samples, 0.22%)starknet_types_core::felt::Felt::from_hex (740 samples, 1.99%)s..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (739 samples, 1.98%)<..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (714 samples, 1.92%)l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (401 samples, 1.08%)torii_erc1155::sink::Erc1155Sink::new (7 samples, 0.02%)torii_erc1155::storage::Erc1155Storage::get_transfer_count (7 samples, 0.02%)rusqlite::statement::Statement::query_row (7 samples, 0.02%)rusqlite::row::Rows::get_expected_row (7 samples, 0.02%)sqlite3_step (7 samples, 0.02%)sqlite3VdbeExec (7 samples, 0.02%)sqlite3BtreeCount (7 samples, 0.02%)moveToChild (7 samples, 0.02%)getAndInitPage (7 samples, 0.02%)btreeInitPage (7 samples, 0.02%)btreeInitPage (9 samples, 0.02%)pcache1FetchStage2 (12 samples, 0.03%)pcache1Fetch (49 samples, 0.13%)getPageNormal (1,615 samples, 4.34%)getPa..readDbPage (1,560 samples, 4.19%)readD..unixRead (1,555 samples, 4.18%)unixR..pread (1,552 samples, 4.17%)preadmoveToChild (1,636 samples, 4.39%)moveT..getAndInitPage (1,634 samples, 4.39%)getAn..getPageMMap (1,622 samples, 4.36%)getPa..torii_erc20::storage::Erc20Storage::get_approval_count (1,640 samples, 4.40%)torii..rusqlite::statement::Statement::query_row (1,640 samples, 4.40%)rusql..rusqlite::row::Rows::get_expected_row (1,640 samples, 4.40%)rusql..sqlite3_step (1,640 samples, 4.40%)sqlit..sqlite3VdbeExec (1,640 samples, 4.40%)sqlit..sqlite3BtreeCount (1,640 samples, 4.40%)sqlit..btreeInitPage (7 samples, 0.02%)pcache1FetchStage2 (52 samples, 0.14%)pcache1Alloc (7 samples, 0.02%)sqlite3Malloc (6 samples, 0.02%)pcache1Fetch (115 samples, 0.31%)pread (6 samples, 0.02%)unixRead (3,920 samples, 10.53%)unixReadpread (3,911 samples, 10.50%)preadreadDbPage (3,935 samples, 10.57%)readDbPagegetPageNormal (4,065 samples, 10.92%)getPageNormalgetAndInitPage (4,084 samples, 10.97%)getAndInitPagegetPageMMap (4,073 samples, 10.94%)getPageMMapwalFindFrame (5 samples, 0.01%)moveToChild (4,086 samples, 10.97%)moveToChildtorii_erc20::sink::Erc20Sink::new (5,737 samples, 15.41%)torii_erc20::sink::Erc20..torii_erc20::storage::Erc20Storage::get_transfer_count (4,097 samples, 11.00%)torii_erc20::sto..rusqlite::statement::Statement::query_row (4,096 samples, 11.00%)rusqlite::statem..rusqlite::row::Rows::get_expected_row (4,096 samples, 11.00%)rusqlite::row::R..sqlite3_step (4,096 samples, 11.00%)sqlite3_stepsqlite3VdbeExec (4,096 samples, 11.00%)sqlite3VdbeExecsqlite3BtreeCount (4,095 samples, 11.00%)sqlite3BtreeCountbtreeInitPage (14 samples, 0.04%)pcache1Fetch (12 samples, 0.03%)pcache1FetchStage2 (6 samples, 0.02%)pcache1Alloc (4 samples, 0.01%)sqlite3Malloc (4 samples, 0.01%)sqlite3MemMalloc (4 samples, 0.01%)torii_erc721::sink::Erc721Sink::new (363 samples, 0.97%)torii_erc721::storage::Erc721Storage::get_transfer_count (363 samples, 0.97%)rusqlite::statement::Statement::query_row (363 samples, 0.97%)<rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance (363 samples, 0.97%)sqlite3_step (363 samples, 0.97%)sqlite3VdbeExec (363 samples, 0.97%)sqlite3BtreeCount (363 samples, 0.97%)moveToChild (363 samples, 0.97%)getAndInitPage (362 samples, 0.97%)getPageMMap (347 samples, 0.93%)getPageNormal (346 samples, 0.93%)readDbPage (334 samples, 0.90%)unixRead (334 samples, 0.90%)pread (332 samples, 0.89%)start (8,086 samples, 21.71%)startmain (8,082 samples, 21.70%)mainstd::rt::lang_start_internal (8,082 samples, 21.70%)std::rt::lang_start_internalstd::rt::lang_start::_{{closure}} (8,082 samples, 21.70%)std::rt::lang_start::_{{closure}}std::sys::backtrace::__rust_begin_short_backtrace (8,082 samples, 21.70%)std::sys::backtrace::__rust_begin_..torii_tokens::main (8,082 samples, 21.70%)torii_tokens::maintokio::runtime::park::CachedParkThread::block_on (8,081 samples, 21.70%)tokio::runtime::park::CachedParkTh..torii_tokens::run_indexer::_{{closure}} (7,962 samples, 21.38%)torii_tokens::run_indexer::_{{clos..<flume::IntoIter<T> as core::iter::traits::iterator::Iterator>::next (15 samples, 0.04%)std::thread::park (13 samples, 0.03%)_dispatch_semaphore_wait_slow (13 samples, 0.03%)_dispatch_sema4_wait (9 samples, 0.02%)semaphore_wait_trap (9 samples, 0.02%)<deduplicated_symbol> (14 samples, 0.04%)_malloc_zone_malloc (14 samples, 0.04%)_xzm_xzone_malloc (18 samples, 0.05%)alloc::vec::Vec<T,A>::into_boxed_slice (4 samples, 0.01%)sqlite3_value_dup (5 samples, 0.01%)__rustc::__rdl_alloc (6 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (19 samples, 0.05%)alloc::vec::Vec<T,A>::into_boxed_slice (5 samples, 0.01%)sqlite3_column_value (7 samples, 0.02%)pthread_mutex_lock (4 samples, 0.01%)<deduplicated_symbol> (10 samples, 0.03%)DYLD-STUB$$pthread_mutex_lock (5 samples, 0.01%)_malloc_zone_malloc (12 samples, 0.03%)_xzm_xzone_malloc (15 samples, 0.04%)default_zone_size (4 samples, 0.01%)pthread_mutex_lock (13 samples, 0.03%)pthread_mutex_unlock (12 samples, 0.03%)DYLD-STUB$$malloc_zone_malloc (6 samples, 0.02%)sqlite3MemMalloc (30 samples, 0.08%)_xzm_xzone_thread_cache_fill_and_malloc (24 samples, 0.06%)sqlite3Malloc (158 samples, 0.42%)sqlite3MemSize (32 samples, 0.09%)xzm_malloc_zone_size (29 samples, 0.08%)_platform_memmove (15 samples, 0.04%)<deduplicated_symbol> (6 samples, 0.02%)_malloc_zone_malloc (13 samples, 0.03%)_xzm_xzone_malloc (9 samples, 0.02%)default_zone_size (5 samples, 0.01%)pthread_mutex_lock (6 samples, 0.02%)pthread_mutex_unlock (7 samples, 0.02%)sqlite3MemMalloc (17 samples, 0.05%)_xzm_xzone_thread_cache_fill_and_malloc (13 samples, 0.03%)sqlite3Malloc (100 samples, 0.27%)sqlite3MemSize (22 samples, 0.06%)xzm_malloc_zone_size (19 samples, 0.05%)sqlite3VdbeMemMakeWriteable (164 samples, 0.44%)vdbeMemAddTerminator (158 samples, 0.42%)sqlite3VdbeMemGrow (140 samples, 0.38%)sqlite3MemSize (25 samples, 0.07%)xzm_malloc_zone_size (20 samples, 0.05%)sqlx_sqlite::row::SqliteRow::current (393 samples, 1.06%)sqlite3_value_dup (335 samples, 0.90%)_platform_memmove (5 samples, 0.01%)unixRead (10 samples, 0.03%)pread (10 samples, 0.03%)getPageNormal (11 samples, 0.03%)readDbPage (11 samples, 0.03%)pcache1Truncate (5 samples, 0.01%)pcache1TruncateUnsafe (5 samples, 0.01%)sqlite3PagerSharedLock (16 samples, 0.04%)walTryBeginRead (11 samples, 0.03%)unixShmLock (10 samples, 0.03%)fcntl (10 samples, 0.03%)__fcntl (10 samples, 0.03%)btreeBeginTrans (29 samples, 0.08%)moveToChild (5 samples, 0.01%)getAndInitPage (4 samples, 0.01%)getPageNormal (4 samples, 0.01%)readDbPage (4 samples, 0.01%)unixRead (4 samples, 0.01%)pread (4 samples, 0.01%)btreeLast (8 samples, 0.02%)btreeParseCellPtr (5 samples, 0.01%)getAndInitPage (20 samples, 0.05%)getPageNormal (20 samples, 0.05%)readDbPage (18 samples, 0.05%)unixRead (18 samples, 0.05%)pread (18 samples, 0.05%)sqlite3BtreeIndexMoveto (23 samples, 0.06%)unixRead (4 samples, 0.01%)pread (4 samples, 0.01%)balance (7 samples, 0.02%)getAndInitPage (5 samples, 0.01%)getPageNormal (5 samples, 0.01%)readDbPage (5 samples, 0.01%)sqlite3BtreeInsert (9 samples, 0.02%)sqlite3BtreeNext (65 samples, 0.17%)moveToChild (61 samples, 0.16%)getAndInitPage (61 samples, 0.16%)getPageNormal (60 samples, 0.16%)readDbPage (57 samples, 0.15%)pread (57 samples, 0.15%)unixSync (23 samples, 0.06%)fsync (23 samples, 0.06%)unixWrite (36 samples, 0.10%)pwrite (36 samples, 0.10%)sqlite3BtreeCommitPhaseOne (61 samples, 0.16%)sqlite3PagerCommitPhaseOne (61 samples, 0.16%)pagerWalFrames (61 samples, 0.16%)walWriteOneFrame (38 samples, 0.10%)sqlite3VdbeHalt (64 samples, 0.17%)vdbeCommit (64 samples, 0.17%)sqlite3VdbeSerialGet (7 samples, 0.02%)sqlite3VdbeExec (315 samples, 0.85%)unixRead (6 samples, 0.02%)pread (6 samples, 0.02%)unixSync (4 samples, 0.01%)fsync (4 samples, 0.01%)sqlx_sqlite::statement::handle::StatementHandle::step (346 samples, 0.93%)sqlite3_step (344 samples, 0.92%)sqlite3WalDefaultHook (14 samples, 0.04%)sqlite3_wal_checkpoint_v2 (14 samples, 0.04%)sqlite3BtreeCheckpoint (14 samples, 0.04%)sqlite3WalCheckpoint (14 samples, 0.04%)unixWrite (4 samples, 0.01%)pwrite (4 samples, 0.01%)<sqlx_sqlite::connection::execute::ExecuteIter as core::iter::traits::iterator::Iterator>::next (800 samples, 2.15%)<..__psynch_cvsignal (153 samples, 0.41%)clock_gettime (23 samples, 0.06%)mach_absolute_time (21 samples, 0.06%)parking_lot::condvar::Condvar::notify_one_slow (184 samples, 0.49%)std::sys::pal::unix::time::Timespec::now (29 samples, 0.08%)clock_gettime_nsec_np (4 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (6 samples, 0.02%)tokio::runtime::context::with_scheduler (5 samples, 0.01%)<flume::async::AsyncSignal as flume::signal::Signal>::fire (194 samples, 0.52%)_pthread_mutex_firstfit_unlock_slow (7 samples, 0.02%)__psynch_mutexdrop (7 samples, 0.02%)pthread_mutex_unlock (13 samples, 0.03%)_pthread_mutex_firstfit_lock_slow (13 samples, 0.03%)__psynch_mutexwait (12 samples, 0.03%)std::sys::pal::unix::sync::mutex::Mutex::lock (22 samples, 0.06%)pthread_mutex_lock (9 samples, 0.02%)flume::Sender<T>::send (251 samples, 0.67%)futures_channel::oneshot::Sender<T>::send (4 samples, 0.01%)sqlx_sqlite::connection::execute::iter (5 samples, 0.01%)sqlx_sqlite::connection::Statements::get (5 samples, 0.01%)0x196372684 (4 samples, 0.01%)0x1963725ec (4 samples, 0.01%)_objc_rootDealloc (4 samples, 0.01%)objc_destructInstance_nonnull_realized(objc_object*) (4 samples, 0.01%)object_cxxDestructFromClass(objc_object*, objc_class*) (4 samples, 0.01%)0x1963726ac (4 samples, 0.01%)0x1960b771c (4 samples, 0.01%)swift_cvw_destroyImpl(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) (4 samples, 0.01%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (4 samples, 0.01%)_swift_release_dealloc (4 samples, 0.01%)0x24752183c (4 samples, 0.01%)0x2475216d4 (4 samples, 0.01%)0x247521778 (4 samples, 0.01%)UnsafeMutablePointer.deinitialize(count:) (4 samples, 0.01%)swift_arrayDestroy (4 samples, 0.01%)-[NWConcrete_nw_resolver_config dealloc] (4 samples, 0.01%)_objc_rootDealloc (4 samples, 0.01%)objc_destructInstance_nonnull_realized(objc_object*) (4 samples, 0.01%)object_cxxDestructFromClass(objc_object*, objc_class*) (4 samples, 0.01%)-[NWConcrete_nw_resolver_config .cxx_destruct] (4 samples, 0.01%)-[OS_xpc_object dealloc] (4 samples, 0.01%)_xpc_dictionary_dispose (4 samples, 0.01%)-[NWConcrete_nw_path_evaluator .cxx_destruct] (5 samples, 0.01%)_objc_rootDealloc (8 samples, 0.02%)objc_destructInstance_nonnull_realized(objc_object*) (8 samples, 0.02%)object_cxxDestructFromClass(objc_object*, objc_class*) (7 samples, 0.02%)-[NWConcrete_nw_path_evaluator dealloc] (12 samples, 0.03%)necp_client_action (66 samples, 0.18%)nw_path_evaluator_add_endpoint_to_necp_message (4 samples, 0.01%)nw_path_create_necp_parameters (30 samples, 0.08%)nw_path_parse_necp_result (8 samples, 0.02%)_xpc_plist_collapse_stack (4 samples, 0.01%)nw_path_bridge_config_agent_dns_copy_resolver_config (8 samples, 0.02%)xpc_create_from_plist_with_string_cache (8 samples, 0.02%)0x1960ada20 (25 samples, 0.07%)_gai_nat64_second_pass (152 samples, 0.41%)nw_nat64_v4_address_requires_synthesis (152 samples, 0.41%)nw_path_create_evaluator_for_endpoint (140 samples, 0.38%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (138 samples, 0.37%)nw_path_snapshot_path(NWConcrete_nw_path*) (33 samples, 0.09%)_nw_path_update_is_viableTm (33 samples, 0.09%)0x1960ad66c (33 samples, 0.09%)0x1960af8b4 (4 samples, 0.01%)_isort (4 samples, 0.01%)_gai_sort_list (5 samples, 0.01%)0x1961e7ea4 (4 samples, 0.01%)0x1961e7d5c (7 samples, 0.02%)0x195ff2268 (4 samples, 0.01%)_nw_parameters_create_legacy_tcp_socket (7 samples, 0.02%)0x196305ff0 (6 samples, 0.02%)_os_log_impl (5 samples, 0.01%)_os_log (5 samples, 0.01%)_os_log_impl_flatten_and_send (5 samples, 0.01%)_os_log_fmt_flatten_object_impl (5 samples, 0.01%)necp_client_action (54 samples, 0.15%)nw_path_create_necp_parameters (27 samples, 0.07%)nw_path_parse_necp_result (6 samples, 0.02%)0x1961f7350 (4 samples, 0.01%)0x1960ada20 (15 samples, 0.04%)nw_path_libinfo_path_check (141 samples, 0.38%)nw_path_create_evaluator_for_endpoint (115 samples, 0.31%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (113 samples, 0.30%)nw_path_snapshot_path(NWConcrete_nw_path*) (23 samples, 0.06%)_nw_path_update_is_viableTm (23 samples, 0.06%)0x1960ad66c (23 samples, 0.06%)handle_query_response (7 samples, 0.02%)_mdns_query_callback (7 samples, 0.02%)kevent (4 samples, 0.01%)DNSServiceProcessResult (15 samples, 0.04%)read_all (5 samples, 0.01%)__recvfrom_nocancel (5 samples, 0.01%)__close_nocancel (13 samples, 0.03%)__select_nocancel (6 samples, 0.02%)__sendmsg_nocancel (7 samples, 0.02%)__socketpair (7 samples, 0.02%)read_all (6 samples, 0.02%)__recvfrom_nocancel (6 samples, 0.02%)_mdns_query_start (43 samples, 0.12%)DNSServiceQueryRecordInternal (43 samples, 0.12%)deliver_request (42 samples, 0.11%)kevent (5 samples, 0.01%)kqueue (4 samples, 0.01%)_mdns_search_ex (72 samples, 0.19%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (372 samples, 1.00%)getaddrinfo (372 samples, 1.00%)si_addrinfo (372 samples, 1.00%)search_addrinfo (74 samples, 0.20%)mdns_addrinfo (74 samples, 0.20%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (374 samples, 1.00%)mach_absolute_time (39 samples, 0.10%)std::sys::pal::unix::time::Timespec::now (44 samples, 0.12%)clock_gettime (41 samples, 0.11%)clock_gettime_nsec_np (41 samples, 0.11%)std::time::Instant::elapsed (17 samples, 0.05%)std::sys::pal::unix::time::Timespec::now (17 samples, 0.05%)clock_gettime (17 samples, 0.05%)clock_gettime_nsec_np (17 samples, 0.05%)mach_absolute_time (16 samples, 0.04%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (11 samples, 0.03%)__psynch_cvwait (123 samples, 0.33%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (140 samples, 0.38%)parking_lot::condvar::Condvar::wait_until_internal (137 samples, 0.37%)_pthread_cond_wait (130 samples, 0.35%)mach_absolute_time (16 samples, 0.04%)std::sys::pal::unix::time::Timespec::now (27 samples, 0.07%)clock_gettime (24 samples, 0.06%)clock_gettime_nsec_np (23 samples, 0.06%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (5 samples, 0.01%)mio::poll::Poll::poll (228 samples, 0.61%)kevent (227 samples, 0.61%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (4 samples, 0.01%)tokio::runtime::context::with_scheduler (4 samples, 0.01%)tokio::runtime::io::driver::Driver::turn (246 samples, 0.66%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (7 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (7 samples, 0.02%)tokio::runtime::signal::Driver::process (4 samples, 0.01%)tokio::runtime::scheduler::multi_thread::park::Parker::park (295 samples, 0.79%)tokio::runtime::time::Driver::park_internal (290 samples, 0.78%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (6 samples, 0.02%)tokio::runtime::time::wheel::Wheel::poll (6 samples, 0.02%)tokio::runtime::io::driver::Driver::turn (4 samples, 0.01%)mio::poll::Poll::poll (4 samples, 0.01%)kevent (4 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (444 samples, 1.19%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (5 samples, 0.01%)tokio::runtime::time::Driver::park_internal (5 samples, 0.01%)<deduplicated_symbol> (13 samples, 0.03%)mio::waker::Waker::wake (13 samples, 0.03%)kevent (13 samples, 0.03%)pthread_cond_signal (27 samples, 0.07%)__psynch_cvsignal (27 samples, 0.07%)parking_lot::condvar::Condvar::notify_one_slow (32 samples, 0.09%)std::sys::pal::unix::time::Timespec::now (4 samples, 0.01%)clock_gettime (4 samples, 0.01%)clock_gettime_nsec_np (4 samples, 0.01%)mach_absolute_time (4 samples, 0.01%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (8 samples, 0.02%)sqlx_sqlite::connection::worker::ConnectionWorker::ping::_{{closure}} (4 samples, 0.01%)<flume::async::SendFut<T> as core::future::future::Future>::poll (4 samples, 0.01%)flume::Shared<T>::send (4 samples, 0.01%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (10 samples, 0.03%)_xzm_free (6 samples, 0.02%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (10 samples, 0.03%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (9 samples, 0.02%)_xzm_free (4 samples, 0.01%)core::hash::BuildHasher::hash_one (18 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (18 samples, 0.05%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (5 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)_realloc (4 samples, 0.01%)_malloc_zone_realloc (4 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (11 samples, 0.03%)core::fmt::write (10 samples, 0.03%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (9 samples, 0.02%)alloc::fmt::format::format_inner (20 samples, 0.05%)core::fmt::write (19 samples, 0.05%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (18 samples, 0.05%)core::fmt::write (12 samples, 0.03%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (25 samples, 0.07%)<alloc::string::String as core::fmt::Write>::write_str (7 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)_malloc_zone_realloc (9 samples, 0.02%)xzm_realloc (8 samples, 0.02%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (20 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (15 samples, 0.04%)alloc::raw_vec::finish_grow (15 samples, 0.04%)_realloc (14 samples, 0.04%)xzm_malloc_zone_size (4 samples, 0.01%)core::fmt::Formatter::pad_integral (8 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (7 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.01%)alloc::raw_vec::finish_grow (5 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (8 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.02%)alloc::raw_vec::finish_grow (6 samples, 0.02%)_platform_memmove (4 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.01%)_platform_memmove (5 samples, 0.01%)_xzm_free (5 samples, 0.01%)_malloc_zone_realloc (31 samples, 0.08%)xzm_realloc (26 samples, 0.07%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (48 samples, 0.13%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (43 samples, 0.12%)alloc::raw_vec::finish_grow (39 samples, 0.10%)_realloc (37 samples, 0.10%)xzm_malloc_zone_size (4 samples, 0.01%)_malloc_zone_realloc (4 samples, 0.01%)xzm_realloc (4 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.02%)alloc::raw_vec::finish_grow (5 samples, 0.01%)_realloc (5 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (95 samples, 0.26%)core::fmt::write (85 samples, 0.23%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (71 samples, 0.19%)core::fmt::Formatter::pad_integral (8 samples, 0.02%)alloc::fmt::format::format_inner (149 samples, 0.40%)core::fmt::write (143 samples, 0.38%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (132 samples, 0.35%)core::fmt::write (99 samples, 0.27%)core::hash::BuildHasher::hash_one (7 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (6 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (10 samples, 0.03%)starknet_types_core::felt::primitive_conversions::_<impl core::convert::TryFrom<starknet_types_core::felt::Felt> for u128>::try_from (6 samples, 0.02%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_le (6 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (6 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (219 samples, 0.59%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (185 samples, 0.50%)_malloc_zone_realloc (7 samples, 0.02%)xzm_realloc (6 samples, 0.02%)alloc::fmt::format::format_inner (29 samples, 0.08%)core::fmt::write (28 samples, 0.08%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (26 samples, 0.07%)core::fmt::write (19 samples, 0.05%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (19 samples, 0.05%)core::fmt::write (17 samples, 0.05%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (16 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (13 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (11 samples, 0.03%)alloc::raw_vec::finish_grow (9 samples, 0.02%)_realloc (9 samples, 0.02%)core::hash::BuildHasher::hash_one (4 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (6 samples, 0.02%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (41 samples, 0.11%)torii::etl::envelope::Envelope::new (4 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (8 samples, 0.02%)alloc::raw_vec::finish_grow (7 samples, 0.02%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (356 samples, 0.96%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (280 samples, 0.75%)_free (4 samples, 0.01%)_xzm_free (12 samples, 0.03%)_xzm_xzone_malloc_tiny (15 samples, 0.04%)_xzm_xzone_malloc_tiny_or_early (25 samples, 0.07%)core::hash::BuildHasher::hash_one (5 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (429 samples, 1.15%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (4 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (4 samples, 0.01%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::commit_cursor::_{{closure}} (5 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (8 samples, 0.02%)_xzm_free (4 samples, 0.01%)<deduplicated_symbol> (60 samples, 0.16%)mio::waker::Waker::wake (59 samples, 0.16%)kevent (59 samples, 0.16%)pthread_cond_signal (23 samples, 0.06%)__psynch_cvsignal (23 samples, 0.06%)parking_lot::condvar::Condvar::notify_one_slow (27 samples, 0.07%)std::sys::pal::unix::time::Timespec::now (4 samples, 0.01%)clock_gettime (4 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (98 samples, 0.26%)tokio::runtime::task::waker::wake_by_val (89 samples, 0.24%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (89 samples, 0.24%)tokio::runtime::context::with_scheduler (89 samples, 0.24%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (105 samples, 0.28%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (102 samples, 0.27%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (108 samples, 0.29%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (108 samples, 0.29%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (109 samples, 0.29%)_platform_memmove (74 samples, 0.20%)_xzm_free (5 samples, 0.01%)_xzm_free (4 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (94 samples, 0.25%)bytes::bytes_mut::shared_v_drop (11 samples, 0.03%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (96 samples, 0.26%)_platform_memmove (29 samples, 0.08%)encoding_rs::Encoding::decode_without_bom_handling (40 samples, 0.11%)encoding_rs::utf_8::utf8_valid_up_to (40 samples, 0.11%)reqwest::async_impl::response::Response::text::_{{closure}} (278 samples, 0.75%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (4 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (7 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.05%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (18 samples, 0.05%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5 samples, 0.01%)<deduplicated_symbol> (17 samples, 0.05%)DYLD-STUB$$malloc (4 samples, 0.01%)DYLD-STUB$$memcpy (4 samples, 0.01%)__rustc::__rdl_alloc (4 samples, 0.01%)_malloc_zone_malloc (15 samples, 0.04%)_platform_memmove (19 samples, 0.05%)_xzm_xzone_malloc (12 samples, 0.03%)_xzm_xzone_malloc_tiny (9 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (108 samples, 0.29%)_malloc_zone_malloc (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)_xzm_free (4 samples, 0.01%)_malloc_zone_realloc (22 samples, 0.06%)xzm_realloc (20 samples, 0.05%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)_realloc (26 samples, 0.07%)_xzm_xzone_malloc (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (194 samples, 0.52%)alloc::raw_vec::RawVec<T,A>::grow_one (47 samples, 0.13%)alloc::raw_vec::finish_grow (45 samples, 0.12%)_malloc_zone_malloc (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (17 samples, 0.05%)<deduplicated_symbol> (9 samples, 0.02%)__rustc::__rdl_alloc (5 samples, 0.01%)_malloc_zone_malloc (16 samples, 0.04%)_platform_memmove (8 samples, 0.02%)_xzm_xzone_malloc (14 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (71 samples, 0.19%)_xzm_xzone_thread_cache_fill_and_malloc (7 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (6 samples, 0.02%)_xzm_xzone_malloc (4 samples, 0.01%)_xzm_xzone_malloc (5 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (142 samples, 0.38%)alloc::raw_vec::RawVec<T,A>::grow_one (33 samples, 0.09%)alloc::raw_vec::finish_grow (25 samples, 0.07%)_xzm_xzone_thread_cache_fill_and_malloc (4 samples, 0.01%)<deduplicated_symbol> (8 samples, 0.02%)_malloc_zone_malloc (10 samples, 0.03%)_platform_memmove (8 samples, 0.02%)_xzm_xzone_malloc (12 samples, 0.03%)_xzm_xzone_malloc_tiny (7 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (204 samples, 0.55%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (53 samples, 0.14%)_platform_memcmp (7 samples, 0.02%)<deduplicated_symbol> (4 samples, 0.01%)_xzm_xzone_malloc (4 samples, 0.01%)_xzm_reclaim_mark_used_locked (7 samples, 0.02%)mach_vm_reclaim_try_cancel (7 samples, 0.02%)mach_absolute_time (7 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (24 samples, 0.06%)_xzm_xzone_find_and_malloc_from_freelist_chunk (20 samples, 0.05%)xzm_chunk_mark_used (19 samples, 0.05%)_xzm_reclaim_mark_used (19 samples, 0.05%)mach_vm_reclaim_update_kernel_accounting (12 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (9 samples, 0.02%)_xzm_xzone_malloc_tiny (6 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (68 samples, 0.18%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (14 samples, 0.04%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (103 samples, 0.28%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (552 samples, 1.48%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (538 samples, 1.44%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (13 samples, 0.03%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (7 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (6 samples, 0.02%)_malloc_zone_realloc (6 samples, 0.02%)xzm_realloc (6 samples, 0.02%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)_realloc (9 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (12 samples, 0.03%)alloc::raw_vec::finish_grow (12 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (589 samples, 1.58%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (597 samples, 1.60%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (8 samples, 0.02%)_platform_memcmp (4 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (5 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (639 samples, 1.72%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (637 samples, 1.71%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (14 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (6 samples, 0.02%)<deduplicated_symbol> (15 samples, 0.04%)DYLD-STUB$$memcpy (8 samples, 0.02%)__rustc::__rdl_alloc (8 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (6 samples, 0.02%)_malloc_zone_malloc (19 samples, 0.05%)_platform_memmove (39 samples, 0.10%)_xzm_xzone_malloc (38 samples, 0.10%)_xzm_xzone_malloc_tiny (10 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (175 samples, 0.47%)_xzm_xzone_thread_cache_fill_and_malloc (11 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (9 samples, 0.02%)xzm_chunk_mark_used (8 samples, 0.02%)_xzm_reclaim_mark_used (8 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (6 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (8 samples, 0.02%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (27 samples, 0.07%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.07%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (12 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (10 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (30 samples, 0.08%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (43 samples, 0.12%)_platform_memmove (11 samples, 0.03%)_xzm_free (4 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (8 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (5 samples, 0.01%)xzm_chunk_mark_used (4 samples, 0.01%)_xzm_reclaim_mark_used (4 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (4 samples, 0.01%)_malloc_zone_realloc (36 samples, 0.10%)xzm_realloc (35 samples, 0.09%)_xzm_xzone_malloc_tiny (7 samples, 0.02%)xzm_malloc_zone_size (4 samples, 0.01%)_realloc (42 samples, 0.11%)alloc::raw_vec::RawVec<T,A>::grow_one (50 samples, 0.13%)alloc::raw_vec::finish_grow (46 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (319 samples, 0.86%)<deduplicated_symbol> (4 samples, 0.01%)_platform_memmove (6 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (18 samples, 0.05%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (339 samples, 0.91%)_platform_memcmp (8 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (12 samples, 0.03%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (12 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (381 samples, 1.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (32 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (385 samples, 1.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (386 samples, 1.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (6 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,042 samples, 2.80%)<s..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1,041 samples, 2.80%)<s..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (10 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,048 samples, 2.81%)<s..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1,049 samples, 2.82%)<s.._platform_memcmp (4 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (5 samples, 0.01%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,062 samples, 2.85%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,061 samples, 2.85%)<s..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1,061 samples, 2.85%)<s..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (12 samples, 0.03%)_xzm_free (8 samples, 0.02%)DYLD-STUB$$free (4 samples, 0.01%)_xzm_free (15 samples, 0.04%)_free (8 samples, 0.02%)_xzm_free (24 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (147 samples, 0.39%)core::ptr::drop_in_place<serde_core::private::content::Content> (147 samples, 0.39%)core::ptr::drop_in_place<serde_core::private::content::Content> (147 samples, 0.39%)core::ptr::drop_in_place<serde_core::private::content::Content> (145 samples, 0.39%)core::ptr::drop_in_place<serde_core::private::content::Content> (142 samples, 0.38%)core::ptr::drop_in_place<serde_core::private::content::Content> (125 samples, 0.34%)core::ptr::drop_in_place<serde_core::private::content::Content> (94 samples, 0.25%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.09%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)_realloc (4 samples, 0.01%)_malloc_zone_realloc (4 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (5 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (4 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (14 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (10 samples, 0.03%)_xzm_free (4 samples, 0.01%)_malloc_zone_realloc (13 samples, 0.03%)xzm_realloc (11 samples, 0.03%)_realloc (16 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (20 samples, 0.05%)alloc::raw_vec::finish_grow (19 samples, 0.05%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.02%)alloc::raw_vec::finish_grow (5 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (4 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.01%)alloc::raw_vec::finish_grow (5 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (18 samples, 0.05%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (35 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (21 samples, 0.06%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (33 samples, 0.09%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (6 samples, 0.02%)_platform_memmove (12 samples, 0.03%)_xzm_free (5 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.01%)_malloc_zone_realloc (30 samples, 0.08%)xzm_realloc (27 samples, 0.07%)_realloc (37 samples, 0.10%)xzm_malloc_zone_size (5 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (45 samples, 0.12%)alloc::raw_vec::finish_grow (41 samples, 0.11%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (12 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (13 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (30 samples, 0.08%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (17 samples, 0.05%)_xzm_xzone_malloc (4 samples, 0.01%)_xzm_xzone_malloc_tiny (13 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (31 samples, 0.08%)alloc::raw_vec::finish_grow (26 samples, 0.07%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (49 samples, 0.13%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (4 samples, 0.01%)<deduplicated_symbol> (5 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)_xzm_xzone_malloc (4 samples, 0.01%)_malloc_zone_realloc (25 samples, 0.07%)xzm_realloc (23 samples, 0.06%)_xzm_xzone_malloc_tiny (9 samples, 0.02%)xzm_malloc_zone_size (4 samples, 0.01%)_realloc (31 samples, 0.08%)_xzm_xzone_malloc (11 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (8 samples, 0.02%)xzm_chunk_mark_used (6 samples, 0.02%)_xzm_reclaim_mark_used (6 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (81 samples, 0.22%)alloc::raw_vec::finish_grow (73 samples, 0.20%)_xzm_xzone_thread_cache_fill_and_malloc (11 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (291 samples, 0.78%)serde_core::de::Deserializer::__deserialize_content_v1 (126 samples, 0.34%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (106 samples, 0.28%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (31 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (481 samples, 1.29%)serde_core::de::Deserializer::__deserialize_content_v1 (351 samples, 0.94%)serde_json::de::Deserializer<R>::end_seq (6 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (5 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (114 samples, 0.31%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (740 samples, 1.99%)<..serde_core::de::Deserializer::__deserialize_content_v1 (634 samples, 1.70%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (9 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (868 samples, 2.33%)<..serde_core::de::Deserializer::__deserialize_content_v1 (811 samples, 2.18%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (876 samples, 2.35%)<..serde_core::de::Deserializer::__deserialize_content_v1 (874 samples, 2.35%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (874 samples, 2.35%)<..serde_core::de::Deserializer::__deserialize_content_v1 (873 samples, 2.34%)s..<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (2,385 samples, 6.40%)<starkne..serde_json::de::from_str (2,099 samples, 5.64%)serde_j..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (2,099 samples, 5.64%)<&mut s..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (2,099 samples, 5.64%)<serde_..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (2,098 samples, 5.63%)<serde_..serde_core::de::Deserializer::__deserialize_content_v1 (888 samples, 2.38%)se..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (887 samples, 2.38%)<s..serde_core::de::Deserializer::__deserialize_content_v1 (887 samples, 2.38%)se..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (886 samples, 2.38%)<s..serde_core::de::Deserializer::__deserialize_content_v1 (879 samples, 2.36%)se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (13 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (13 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (12 samples, 0.03%)_platform_memmove (4 samples, 0.01%)_platform_memmove (6 samples, 0.02%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (11 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (9 samples, 0.02%)<deduplicated_symbol> (12 samples, 0.03%)DYLD-STUB$$memcpy (4 samples, 0.01%)__rustc::__rdl_alloc (11 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (4 samples, 0.01%)_malloc_zone_malloc (28 samples, 0.08%)_platform_memmove (27 samples, 0.07%)_xzm_xzone_malloc (27 samples, 0.07%)_xzm_xzone_malloc_tiny (11 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (142 samples, 0.38%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (216 samples, 0.58%)serde::private::de::content::content_clone (198 samples, 0.53%)serde::private::de::content::content_clone (170 samples, 0.46%)serde::private::de::content::content_clone (13 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (12 samples, 0.03%)_platform_memmove (4 samples, 0.01%)<starknet_core::types::codegen::DeployAccountTransactionV3Content as serde_core::de::Deserialize>::deserialize (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.01%)<&mut A as serde_core::de::MapAccess>::next_key_seed (11 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.06%)serde::private::de::content::MapDeserializer<E>::end (5 samples, 0.01%)_xzm_free (4 samples, 0.01%)mach_absolute_time (4 samples, 0.01%)<<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize::_::<impl serde_core::de::Deserialize for <starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize::Tagged>::deserialize::__FieldVisitor as serde_core::de::Visitor>::visit_str (5 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17 samples, 0.05%)starknet_types_core::felt::Felt::from_hex (17 samples, 0.05%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (16 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (11 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (5 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1,007 samples, 2.70%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (896 samples, 2.41%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (487 samples, 1.31%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,039 samples, 2.79%)<s..starknet_types_core::felt::Felt::from_hex (1,020 samples, 2.74%)st.._free (18 samples, 0.05%)_xzm_free (32 samples, 0.09%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (1,113 samples, 2.99%)<se..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1,127 samples, 3.03%)<se.._xzm_free (12 samples, 0.03%)<starknet_core::types::serde_impls::NumAsHexVisitorU128 as serde_core::de::Visitor>::visit_str (5 samples, 0.01%)core::str::_<impl str>::trim_start_matches (4 samples, 0.01%)<starknet_core::types::serde_impls::NumAsHexVisitorU64 as serde_core::de::Visitor>::visit_str (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (17 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (26 samples, 0.07%)_xzm_free (7 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1,189 samples, 3.19%)<se..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (1,436 samples, 3.86%)star..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::InvokeTransactionContent>::deserialize (1,214 samples, 3.26%)sta..<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (1,192 samples, 3.20%)<st.._platform_memmove (4 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (15 samples, 0.04%)_xzm_xzone_malloc_tiny (5 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (12 samples, 0.03%)__rustc::__rdl_alloc (4 samples, 0.01%)_xzm_xzone_malloc_tiny (8 samples, 0.02%)<deduplicated_symbol> (9 samples, 0.02%)_malloc_zone_malloc (18 samples, 0.05%)_platform_memmove (13 samples, 0.03%)_xzm_xzone_malloc (11 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (73 samples, 0.20%)_malloc_zone_malloc (11 samples, 0.03%)_xzm_xzone_malloc (6 samples, 0.02%)_xzm_xzone_malloc_tiny (27 samples, 0.07%)<deduplicated_symbol> (17 samples, 0.05%)__rustc::__rdl_alloc (6 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (4 samples, 0.01%)_malloc_zone_malloc (22 samples, 0.06%)_platform_memmove (33 samples, 0.09%)_xzm_xzone_malloc (26 samples, 0.07%)_xzm_xzone_malloc_tiny (8 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (370 samples, 0.99%)serde::private::de::content::content_clone (343 samples, 0.92%)serde::private::de::content::content_clone (332 samples, 0.89%)serde::private::de::content::content_clone (292 samples, 0.78%)serde::private::de::content::content_clone (142 samples, 0.38%)<alloc::string::String as core::clone::Clone>::clone (136 samples, 0.37%)xzm_malloc_zone_malloc_type_malloc (5 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (36 samples, 0.10%)starknet_types_core::felt::Felt::from_hex (36 samples, 0.10%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (36 samples, 0.10%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (34 samples, 0.09%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (17 samples, 0.05%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (202 samples, 0.54%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (193 samples, 0.52%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (110 samples, 0.30%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (208 samples, 0.56%)starknet_types_core::felt::Felt::from_hex (205 samples, 0.55%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (797 samples, 2.14%)<..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (684 samples, 1.84%)l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (357 samples, 0.96%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (827 samples, 2.22%)<..starknet_types_core::felt::Felt::from_hex (811 samples, 2.18%)s..DYLD-STUB$$free (6 samples, 0.02%)_free (22 samples, 0.06%)_malloc_zone_malloc (4 samples, 0.01%)_xzm_free (59 samples, 0.16%)_platform_memset (9 samples, 0.02%)_xzm_xzone_malloc (18 samples, 0.05%)_xzm_xzone_malloc_tiny (29 samples, 0.08%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (1,006 samples, 2.70%)<s..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1,041 samples, 2.80%)<s.._xzm_free (26 samples, 0.07%)_platform_memset (4 samples, 0.01%)_free (9 samples, 0.02%)_xzm_free (28 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1,331 samples, 3.57%)<ser..serde::private::de::content::MapDeserializer<E>::end (22 samples, 0.06%)_xzm_free (15 samples, 0.04%)_xzm_free (7 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1,356 samples, 3.64%)<ser..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1,359 samples, 3.65%)<ser..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (6 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (6 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (17 samples, 0.05%)_xzm_free (4 samples, 0.01%)_xzm_free (6 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (1,439 samples, 3.86%)<ser..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (1,442 samples, 3.87%)<sta..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3,258 samples, 8.75%)<serde::priv..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (1,816 samples, 4.88%)starkn..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (3,263 samples, 8.76%)<serde::priv..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (3,263 samples, 8.76%)<serde_core:..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3,289 samples, 8.83%)<serde::priv..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (8 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (7 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (7 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (5 samples, 0.01%)_xzm_free (4 samples, 0.01%)_xzm_free (4 samples, 0.01%)_free (9 samples, 0.02%)_platform_memset (5 samples, 0.01%)_xzm_free (36 samples, 0.10%)DYLD-STUB$$free (11 samples, 0.03%)_free (17 samples, 0.05%)_xzm_free (103 samples, 0.28%)_platform_memset (7 samples, 0.02%)_xzm_xzone_madvise_batch (4 samples, 0.01%)DYLD-STUB$$free (7 samples, 0.02%)_free (21 samples, 0.06%)_platform_memset (6 samples, 0.02%)_xzm_free (62 samples, 0.17%)DYLD-STUB$$free (9 samples, 0.02%)_free (25 samples, 0.07%)_xzm_free (70 samples, 0.19%)_platform_memset (5 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (251 samples, 0.67%)core::ptr::drop_in_place<serde_core::private::content::Content> (138 samples, 0.37%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (472 samples, 1.27%)core::ptr::drop_in_place<serde_core::private::content::Content> (467 samples, 1.25%)core::ptr::drop_in_place<serde_core::private::content::Content> (461 samples, 1.24%)core::ptr::drop_in_place<serde_core::private::content::Content> (459 samples, 1.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (406 samples, 1.09%)_xzm_free (6 samples, 0.02%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (21 samples, 0.06%)_xzm_xzone_madvise_batch (6 samples, 0.02%)xzm_reclaim_mark_free_locked (5 samples, 0.01%)mach_vm_reclaim_try_enter (5 samples, 0.01%)mach_absolute_time (5 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (6 samples, 0.02%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (10 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (30 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (58 samples, 0.16%)serde_core::de::Deserializer::__deserialize_content_v1 (38 samples, 0.10%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)<alloc::collections::btree::map::IntoIter<K,V,A> as core::ops::drop::Drop>::drop (5 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4 samples, 0.01%)__rustc::__rdl_alloc (4 samples, 0.01%)_malloc_zone_malloc (7 samples, 0.02%)_xzm_xzone_malloc_tiny (9 samples, 0.02%)_xzm_free (12 samples, 0.03%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (32 samples, 0.09%)<serde_json::value::de::SeqDeserializer as serde_core::de::SeqAccess>::size_hint (4 samples, 0.01%)_malloc_zone_malloc (6 samples, 0.02%)_xzm_xzone_malloc (11 samples, 0.03%)_xzm_xzone_malloc_tiny (40 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (144 samples, 0.39%)serde_core::de::Deserializer::__deserialize_content_v1 (23 samples, 0.06%)_free (5 samples, 0.01%)_xzm_free (23 samples, 0.06%)_platform_memset (5 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (297 samples, 0.80%)serde_core::de::Deserializer::__deserialize_content_v1 (208 samples, 0.56%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (396 samples, 1.06%)serde_core::de::Deserializer::__deserialize_content_v1 (345 samples, 0.93%)_xzm_free (4 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (530 samples, 1.42%)serde_core::de::Deserializer::__deserialize_content_v1 (492 samples, 1.32%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (6,699 samples, 17.99%)<starknet_providers::jsonrpc..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (4,309 samples, 11.57%)starknet_core::ty..serde_core::de::Deserializer::__deserialize_content_v1 (548 samples, 1.47%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (548 samples, 1.47%)serde_core::de::Deserializer::__deserialize_content_v1 (543 samples, 1.46%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (541 samples, 1.45%)serde_core::de::Deserializer::__deserialize_content_v1 (540 samples, 1.45%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (539 samples, 1.45%)serde_core::de::Deserializer::__deserialize_content_v1 (536 samples, 1.44%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4 samples, 0.01%)SecTrustCopyPublicKey (4 samples, 0.01%)SecCertificateCopyPublicKey$LEGACYMAC (4 samples, 0.01%)SSLHandshake (9 samples, 0.02%)SSLHandshakeProceed (9 samples, 0.02%)tls_handshake_process (6 samples, 0.02%)SSLProcessHandshakeRecordInner (6 samples, 0.02%)tls_handshake_message_callback (5 samples, 0.01%)tls_helper_set_peer_pubkey (5 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (11 samples, 0.03%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (11 samples, 0.03%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (11 samples, 0.03%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (13 samples, 0.03%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (13 samples, 0.03%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (13 samples, 0.03%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (13 samples, 0.03%)reqwest::connect::with_timeout::_{{closure}} (13 samples, 0.03%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (13 samples, 0.03%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (13 samples, 0.03%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (17 samples, 0.05%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (17 samples, 0.05%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (16 samples, 0.04%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (18 samples, 0.05%)reqwest::async_impl::response::Response::text::_{{closure}} (4 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (27 samples, 0.07%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (27 samples, 0.07%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}}::_{{closure}} (4 samples, 0.01%)tracing_core::event::Event::dispatch (4 samples, 0.01%)_platform_memmove (5 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (6 samples, 0.02%)_xzm_free (4 samples, 0.01%)_platform_memmove (16 samples, 0.04%)torii::etl::extractor::starknet_helpers::block_into_contexts (48 samples, 0.13%)alloc::raw_vec::RawVec<T,A>::grow_one (20 samples, 0.05%)alloc::raw_vec::finish_grow (20 samples, 0.05%)_realloc (20 samples, 0.05%)_malloc_zone_realloc (20 samples, 0.05%)xzm_realloc (20 samples, 0.05%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (6,797 samples, 18.25%)<torii::etl::extractor::bloc..<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (13 samples, 0.03%)core::hash::BuildHasher::hash_one (5 samples, 0.01%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (4 samples, 0.01%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (4 samples, 0.01%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (4 samples, 0.01%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (7 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (5 samples, 0.01%)_xzm_free (4 samples, 0.01%)<deduplicated_symbol> (22 samples, 0.06%)mio::waker::Waker::wake (22 samples, 0.06%)kevent (21 samples, 0.06%)pthread_cond_signal (9 samples, 0.02%)__psynch_cvsignal (9 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (40 samples, 0.11%)tokio::runtime::task::waker::wake_by_val (34 samples, 0.09%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (34 samples, 0.09%)tokio::runtime::context::with_scheduler (33 samples, 0.09%)parking_lot::condvar::Condvar::notify_one_slow (11 samples, 0.03%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (44 samples, 0.12%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (43 samples, 0.12%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (43 samples, 0.12%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (42 samples, 0.11%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (47 samples, 0.13%)_platform_memmove (33 samples, 0.09%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (44 samples, 0.12%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (43 samples, 0.12%)bytes::bytes_mut::shared_v_drop (6 samples, 0.02%)_platform_memmove (8 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (122 samples, 0.33%)encoding_rs::Encoding::decode_without_bom_handling (18 samples, 0.05%)encoding_rs::utf_8::utf8_valid_up_to (18 samples, 0.05%)<deduplicated_symbol> (23 samples, 0.06%)__rustc::__rdl_alloc (10 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (6 samples, 0.02%)_malloc_zone_malloc (15 samples, 0.04%)_platform_memmove (49 samples, 0.13%)_xzm_xzone_malloc (25 samples, 0.07%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (167 samples, 0.45%)_xzm_xzone_thread_cache_fill_and_malloc (16 samples, 0.04%)_xzm_xzone_find_and_malloc_from_freelist_chunk (13 samples, 0.03%)xzm_chunk_mark_used (9 samples, 0.02%)_xzm_reclaim_mark_used (9 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (6 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (6 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.01%)_platform_memmove (5 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (205 samples, 0.55%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (205 samples, 0.55%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (205 samples, 0.55%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (205 samples, 0.55%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (205 samples, 0.55%)alloc::raw_vec::RawVec<T,A>::grow_one (10 samples, 0.03%)alloc::raw_vec::finish_grow (10 samples, 0.03%)_realloc (10 samples, 0.03%)_malloc_zone_realloc (10 samples, 0.03%)xzm_realloc (10 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (21 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (14 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (22 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (22 samples, 0.06%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (9 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (7 samples, 0.02%)alloc::raw_vec::finish_grow (7 samples, 0.02%)_realloc (7 samples, 0.02%)_malloc_zone_realloc (7 samples, 0.02%)xzm_realloc (7 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (161 samples, 0.43%)serde_core::de::Deserializer::__deserialize_content_v1 (135 samples, 0.36%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (120 samples, 0.32%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (14 samples, 0.04%)_platform_memmove (11 samples, 0.03%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (544 samples, 1.46%)serde_json::de::from_str (410 samples, 1.10%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (410 samples, 1.10%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (410 samples, 1.10%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (410 samples, 1.10%)serde_core::de::Deserializer::__deserialize_content_v1 (183 samples, 0.49%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (183 samples, 0.49%)serde_core::de::Deserializer::__deserialize_content_v1 (183 samples, 0.49%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (183 samples, 0.49%)serde_core::de::Deserializer::__deserialize_content_v1 (183 samples, 0.49%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1,355 samples, 3.64%)<lam..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1,273 samples, 3.42%)lam..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (691 samples, 1.86%)l..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1,386 samples, 3.72%)<ser..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (1,384 samples, 3.72%)<ser..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,376 samples, 3.70%)<ser..starknet_types_core::felt::Felt::from_hex (1,366 samples, 3.67%)star..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (10 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (9 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (9 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (9 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (9 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1,400 samples, 3.76%)<ser..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (13 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (13 samples, 0.03%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (13 samples, 0.03%)_free (26 samples, 0.07%)__bzero (4 samples, 0.01%)_xzm_free (69 samples, 0.19%)_platform_memset (6 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (110 samples, 0.30%)core::ptr::drop_in_place<serde_core::private::content::Content> (109 samples, 0.29%)core::ptr::drop_in_place<serde_core::private::content::Content> (9 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (52 samples, 0.14%)serde_core::de::Deserializer::__deserialize_content_v1 (16 samples, 0.04%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (2,123 samples, 5.70%)<starkn..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (1,577 samples, 4.23%)stark..serde_core::de::Deserializer::__deserialize_content_v1 (67 samples, 0.18%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (67 samples, 0.18%)serde_core::de::Deserializer::__deserialize_content_v1 (67 samples, 0.18%)serde_core::de::Deserializer::__deserialize_content_v1 (11 samples, 0.03%)core::hash::BuildHasher::hash_one (4 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (8 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (6 samples, 0.02%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (10 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (4 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (20 samples, 0.05%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (24 samples, 0.06%)<deduplicated_symbol> (23 samples, 0.06%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (22 samples, 0.06%)alloc::fmt::format::format_inner (4 samples, 0.01%)core::fmt::write (4 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (4 samples, 0.01%)core::fmt::write (4 samples, 0.01%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (33 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (9 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (9 samples, 0.02%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (10 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (5 samples, 0.01%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (19 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (15 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (15 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (9 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (4 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (40 samples, 0.11%)serde_json::de::from_trait (38 samples, 0.10%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (38 samples, 0.10%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (38 samples, 0.10%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (36 samples, 0.10%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEvent>::deserialize (6 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (5 samples, 0.01%)_malloc_zone_realloc (5 samples, 0.01%)xzm_realloc (4 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (9 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.02%)alloc::raw_vec::finish_grow (7 samples, 0.02%)_realloc (6 samples, 0.02%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (21 samples, 0.06%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (16 samples, 0.04%)alloc::fmt::format::format_inner (13 samples, 0.03%)core::fmt::write (11 samples, 0.03%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (15 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (12 samples, 0.03%)alloc::fmt::format::format_inner (6 samples, 0.02%)core::fmt::write (5 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (4 samples, 0.01%)alloc::fmt::format::format_inner (8 samples, 0.02%)core::fmt::write (6 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (2,278 samples, 6.12%)<torii::..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (2,277 samples, 6.11%)torii::e..torii::etl::identification::registry::ContractRegistry::run_rules (54 samples, 0.15%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (18 samples, 0.05%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (13 samples, 0.03%)torii::etl::decoder::DecoderId::new (8 samples, 0.02%)rusqlite::statement::Statement::execute_with_bound_parameters (6 samples, 0.02%)sqlite3_step (6 samples, 0.02%)sqlite3VdbeExec (6 samples, 0.02%)sqlite3BtreeInsert (5 samples, 0.01%)sqlite3BtreeIndexMoveto (4 samples, 0.01%)getAndInitPage (4 samples, 0.01%)getPageMMap (4 samples, 0.01%)getPageNormal (4 samples, 0.01%)readDbPage (4 samples, 0.01%)unixRead (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (21 samples, 0.06%)torii_erc1155::storage::Erc1155Storage::insert_transfers_batch (10 samples, 0.03%)rusqlite::transaction::Transaction::commit (4 samples, 0.01%)rusqlite::Connection::execute_batch (4 samples, 0.01%)sqlite3_step (4 samples, 0.01%)sqlite3VdbeExec (4 samples, 0.01%)sqlite3VdbeHalt (4 samples, 0.01%)vdbeCommit (4 samples, 0.01%)sqlite3BtreeCommitPhaseOne (4 samples, 0.01%)sqlite3PagerCommitPhaseOne (4 samples, 0.01%)pagerWalFrames (4 samples, 0.01%)walWriteOneFrame (4 samples, 0.01%)unixWrite (4 samples, 0.01%)pwrite (4 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (4 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (4 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (4 samples, 0.01%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (4 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (5 samples, 0.01%)alloc::fmt::format::format_inner (6 samples, 0.02%)core::fmt::write (6 samples, 0.02%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (5 samples, 0.01%)core::fmt::write (4 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (4 samples, 0.01%)core::fmt::write (4 samples, 0.01%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (4 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (8 samples, 0.02%)alloc::fmt::format::format_inner (5 samples, 0.01%)core::fmt::write (5 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (5 samples, 0.01%)core::fmt::write (4 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (4 samples, 0.01%)serde_core::ser::Serializer::collect_seq (17 samples, 0.05%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (17 samples, 0.05%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (16 samples, 0.04%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (16 samples, 0.04%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (16 samples, 0.04%)serde_core::ser::Serializer::collect_seq (7 samples, 0.02%)<deduplicated_symbol> (7 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (7 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (35 samples, 0.09%)serde_json::de::from_str (7 samples, 0.02%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (7 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (7 samples, 0.02%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (7 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (42 samples, 0.11%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (42 samples, 0.11%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (4 samples, 0.01%)serde_json::value::de::visit_array (4 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (7 samples, 0.02%)core::hash::BuildHasher::hash_one (5 samples, 0.01%)core::hash::BuildHasher::hash_one (13 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (12 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (21 samples, 0.06%)core::hash::BuildHasher::hash_one (4 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (4 samples, 0.01%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (8 samples, 0.02%)unixWrite (105 samples, 0.28%)pwrite (105 samples, 0.28%)pagerWalFrames (127 samples, 0.34%)walWriteOneFrame (124 samples, 0.33%)walEncodeFrame (19 samples, 0.05%)walChecksumBytes (19 samples, 0.05%)sqlite3VdbeExec (132 samples, 0.35%)sqlite3VdbeHalt (132 samples, 0.35%)vdbeCommit (132 samples, 0.35%)sqlite3BtreeCommitPhaseOne (132 samples, 0.35%)sqlite3PagerCommitPhaseOne (132 samples, 0.35%)sqlite3PcacheDirtyList (4 samples, 0.01%)unixRead (37 samples, 0.10%)pread (37 samples, 0.10%)unixSync (8 samples, 0.02%)fsync (8 samples, 0.02%)rusqlite::Connection::execute_batch (340 samples, 0.91%)sqlite3_step (339 samples, 0.91%)sqlite3WalDefaultHook (207 samples, 0.56%)sqlite3_wal_checkpoint_v2 (207 samples, 0.56%)sqlite3BtreeCheckpoint (207 samples, 0.56%)sqlite3WalCheckpoint (207 samples, 0.56%)unixWrite (157 samples, 0.42%)pwrite (157 samples, 0.42%)btreeLast (4 samples, 0.01%)sqlite3BtreeIndexMoveto (42 samples, 0.11%)sqlite3VdbeRecordCompareWithSkip (20 samples, 0.05%)_platform_memcmp (4 samples, 0.01%)getAndInitPage (9 samples, 0.02%)getPageMMap (9 samples, 0.02%)getPageNormal (9 samples, 0.02%)readDbPage (9 samples, 0.02%)unixRead (9 samples, 0.02%)pread (9 samples, 0.02%)balance (11 samples, 0.03%)getAndInitPage (35 samples, 0.09%)getPageMMap (34 samples, 0.09%)getPageNormal (34 samples, 0.09%)readDbPage (33 samples, 0.09%)unixRead (33 samples, 0.09%)pread (33 samples, 0.09%)sqlite3BtreeIndexMoveto (43 samples, 0.12%)sqlite3VdbeRecordCompareWithSkip (6 samples, 0.02%)_platform_memcmp (5 samples, 0.01%)sqlite3BtreeInsert (61 samples, 0.16%)sqlite3BtreeTableMoveto (14 samples, 0.04%)sqlite3VdbeHalt (8 samples, 0.02%)sqlite3VdbeFreeCursorNN (5 samples, 0.01%)btreeReleaseAllCursorPages (5 samples, 0.01%)sqlite3VdbeMemGrow (4 samples, 0.01%)sqlite3MemMalloc (4 samples, 0.01%)sqlite3VdbeExec (192 samples, 0.52%)strftimeFunc (13 samples, 0.03%)sqlite3_str_appendf (9 samples, 0.02%)sqlite3_str_vappendf (9 samples, 0.02%)enlargeAndAppend (6 samples, 0.02%)sqlite3StrAccumEnlarge (6 samples, 0.02%)sqlite3Malloc (6 samples, 0.02%)rusqlite::statement::Statement::execute_with_bound_parameters (193 samples, 0.52%)sqlite3_step (193 samples, 0.52%)core::ptr::drop_in_place<rusqlite::row::Rows> (4 samples, 0.01%)sqlite3_reset (4 samples, 0.01%)sqlite3VdbeReset (4 samples, 0.01%)sqlite3VdbeHalt (4 samples, 0.01%)pcache1Fetch (12 samples, 0.03%)getPageNormal (47 samples, 0.13%)readDbPage (34 samples, 0.09%)unixRead (34 samples, 0.09%)pread (34 samples, 0.09%)getPageMMap (53 samples, 0.14%)walFindFrame (6 samples, 0.02%)getAndInitPage (55 samples, 0.15%)sqlite3BtreeIndexMoveto (123 samples, 0.33%)sqlite3VdbeRecordCompareWithSkip (35 samples, 0.09%)_platform_memcmp (10 samples, 0.03%)getPageNormal (9 samples, 0.02%)readDbPage (8 samples, 0.02%)unixRead (8 samples, 0.02%)pread (8 samples, 0.02%)moveToChild (13 samples, 0.03%)getAndInitPage (13 samples, 0.03%)getPageMMap (10 samples, 0.03%)sqlite3VdbeFinishMoveto (40 samples, 0.11%)sqlite3BtreeTableMoveto (40 samples, 0.11%)rusqlite::row::Rows::get_expected_row (170 samples, 0.46%)sqlite3_step (170 samples, 0.46%)sqlite3VdbeExec (169 samples, 0.45%)rusqlite::statement::Statement::query_row (179 samples, 0.48%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)torii_common::felt_to_blob (10 samples, 0.03%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (4 samples, 0.01%)std::thread::local::LocalKey<T>::with (4 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments (775 samples, 2.08%)t..torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (5 samples, 0.01%)tracing_core::event::Event::dispatch (5 samples, 0.01%)core::hash::BuildHasher::hash_one (6 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (6 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (11 samples, 0.03%)hashbrown::raw::RawTable<T,A>::reserve_rehash (5 samples, 0.01%)core::hash::BuildHasher::hash_one (4 samples, 0.01%)core::ptr::drop_in_place<rusqlite::row::Rows> (20 samples, 0.05%)sqlite3_reset (20 samples, 0.05%)sqlite3VdbeReset (20 samples, 0.05%)sqlite3VdbeHalt (19 samples, 0.05%)vdbeCommit (18 samples, 0.05%)sqlite3BtreeCommitPhaseTwo (17 samples, 0.05%)pager_unlock (17 samples, 0.05%)unixShmLock (17 samples, 0.05%)fcntl (17 samples, 0.05%)__fcntl (17 samples, 0.05%)unixShmLock (10 samples, 0.03%)fcntl (10 samples, 0.03%)__fcntl (10 samples, 0.03%)btreeBeginTrans (14 samples, 0.04%)sqlite3PagerSharedLock (11 samples, 0.03%)walTryBeginRead (11 samples, 0.03%)pcache1Fetch (11 samples, 0.03%)getPageNormal (66 samples, 0.18%)readDbPage (55 samples, 0.15%)unixRead (55 samples, 0.15%)pread (55 samples, 0.15%)getPageMMap (67 samples, 0.18%)getAndInitPage (69 samples, 0.19%)sqlite3BtreeIndexMoveto (129 samples, 0.35%)sqlite3VdbeRecordCompareWithSkip (26 samples, 0.07%)_platform_memcmp (6 samples, 0.02%)moveToChild (36 samples, 0.10%)getAndInitPage (36 samples, 0.10%)getPageMMap (33 samples, 0.09%)getPageNormal (31 samples, 0.08%)readDbPage (28 samples, 0.08%)unixRead (28 samples, 0.08%)pread (28 samples, 0.08%)sqlite3VdbeFinishMoveto (55 samples, 0.15%)sqlite3BtreeTableMoveto (55 samples, 0.15%)sqlite3GetVarint (4 samples, 0.01%)rusqlite::row::Rows::get_expected_row (208 samples, 0.56%)sqlite3_step (208 samples, 0.56%)sqlite3VdbeExec (207 samples, 0.56%)rusqlite::statement::Statement::query_row (233 samples, 0.63%)torii_erc20::storage::Erc20Storage::get_balances_batch (243 samples, 0.65%)torii_erc20::storage::Erc20Storage::check_balances_batch (266 samples, 0.71%)rusqlite::inner_connection::InnerConnection::prepare (6 samples, 0.02%)sqlite3LockAndPrepare (6 samples, 0.02%)sqlite3Prepare (6 samples, 0.02%)sqlite3RunParser (6 samples, 0.02%)yy_reduce (5 samples, 0.01%)sqlite3Select (4 samples, 0.01%)rusqlite::statement::Statement::query_row (5 samples, 0.01%)rusqlite::row::Rows::get_expected_row (5 samples, 0.01%)sqlite3_step (5 samples, 0.01%)sqlite3VdbeExec (5 samples, 0.01%)sqlite3BtreeIndexMoveto (4 samples, 0.01%)torii_erc20::storage::Erc20Storage::has_token_metadata (12 samples, 0.03%)rusqlite::statement::Statement::bind_parameter (4 samples, 0.01%)btreeBeginTrans (4 samples, 0.01%)pcache1Fetch (5 samples, 0.01%)unixRead (85 samples, 0.23%)pread (84 samples, 0.23%)getAndInitPage (94 samples, 0.25%)getPageMMap (92 samples, 0.25%)getPageNormal (92 samples, 0.25%)readDbPage (86 samples, 0.23%)sqlite3BtreeIndexMoveto (109 samples, 0.29%)sqlite3VdbeRecordCompareWithSkip (7 samples, 0.02%)pcache1Fetch (4 samples, 0.01%)getAndInitPage (47 samples, 0.13%)getPageMMap (47 samples, 0.13%)getPageNormal (47 samples, 0.13%)readDbPage (42 samples, 0.11%)unixRead (42 samples, 0.11%)pread (40 samples, 0.11%)balance (64 samples, 0.17%)pcache1Fetch (14 samples, 0.04%)getAndInitPage (81 samples, 0.22%)getPageMMap (79 samples, 0.21%)getPageNormal (79 samples, 0.21%)readDbPage (65 samples, 0.17%)unixRead (65 samples, 0.17%)pread (65 samples, 0.17%)moveToRoot (4 samples, 0.01%)sqlite3VdbeRecordCompareWithSkip (31 samples, 0.08%)_platform_memcmp (23 samples, 0.06%)sqlite3BtreeIndexMoveto (133 samples, 0.36%)sqlite3BtreeInsert (207 samples, 0.56%)sqlite3BtreeOpen (6 samples, 0.02%)sqlite3BtreeTableMoveto (5 samples, 0.01%)btreeReleaseAllCursorPages (5 samples, 0.01%)sqlite3VdbeExec (374 samples, 1.00%)sqlite3VdbeHalt (17 samples, 0.05%)sqlite3VdbeFreeCursorNN (16 samples, 0.04%)sqlite3BtreeClose (11 samples, 0.03%)sqlite3PagerClose (9 samples, 0.02%)pcache1Truncate (6 samples, 0.02%)pcache1TruncateUnsafe (5 samples, 0.01%)rusqlite::statement::Statement::execute_with_bound_parameters (377 samples, 1.01%)sqlite3_step (377 samples, 1.01%)unixWrite (149 samples, 0.40%)pwrite (149 samples, 0.40%)pagerWalFrames (184 samples, 0.49%)walWriteOneFrame (180 samples, 0.48%)walEncodeFrame (31 samples, 0.08%)walChecksumBytes (31 samples, 0.08%)sqlite3VdbeExec (186 samples, 0.50%)sqlite3VdbeHalt (186 samples, 0.50%)vdbeCommit (186 samples, 0.50%)sqlite3BtreeCommitPhaseOne (186 samples, 0.50%)sqlite3PagerCommitPhaseOne (186 samples, 0.50%)unixRead (21 samples, 0.06%)pread (21 samples, 0.06%)unixSync (5 samples, 0.01%)fsync (5 samples, 0.01%)sqlite3WalCheckpoint (144 samples, 0.39%)unixWrite (116 samples, 0.31%)pwrite (116 samples, 0.31%)torii_erc20::storage::Erc20Storage::insert_approvals_batch (718 samples, 1.93%)t..rusqlite::transaction::Transaction::commit (331 samples, 0.89%)rusqlite::Connection::execute_batch (331 samples, 0.89%)sqlite3_step (331 samples, 0.89%)sqlite3WalDefaultHook (145 samples, 0.39%)sqlite3_wal_checkpoint_v2 (145 samples, 0.39%)sqlite3BtreeCheckpoint (145 samples, 0.39%)_xzm_free (4 samples, 0.01%)sqlite3VdbeMemSetStr (8 samples, 0.02%)bindText (14 samples, 0.04%)rusqlite::statement::Statement::bind_parameter (26 samples, 0.07%)_platform_memmove (17 samples, 0.05%)pcache1Unpin (5 samples, 0.01%)btreeReleaseAllCursorPages (15 samples, 0.04%)sqlite3PcacheRelease (8 samples, 0.02%)allocateCursor (28 samples, 0.08%)sqlite3VdbeFreeCursorNN (17 samples, 0.05%)allocateTempSpace (5 samples, 0.01%)pcache1Alloc (5 samples, 0.01%)sqlite3Malloc (5 samples, 0.01%)_platform_memset (9 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (5 samples, 0.01%)sqlite3MemMalloc (8 samples, 0.02%)sqlite3Malloc (14 samples, 0.04%)sqlite3MemSize (4 samples, 0.01%)xzm_malloc_zone_size (4 samples, 0.01%)pcache1Alloc (18 samples, 0.05%)getPageNormal (33 samples, 0.09%)pcache1Fetch (24 samples, 0.06%)pcache1FetchStage2 (22 samples, 0.06%)newDatabase (4 samples, 0.01%)btreeBeginTrans (43 samples, 0.12%)pcache1Fetch (11 samples, 0.03%)pthread_mutex_unlock (4 samples, 0.01%)getPageMMap (19 samples, 0.05%)getPageNormal (19 samples, 0.05%)moveToChild (27 samples, 0.07%)getAndInitPage (24 samples, 0.06%)btreeLast (32 samples, 0.09%)btreeParseCellPtr (5 samples, 0.01%)getPageNormal (5 samples, 0.01%)pcache1Fetch (5 samples, 0.01%)getPageMMap (8 samples, 0.02%)moveToRoot (11 samples, 0.03%)getAndInitPage (10 samples, 0.03%)sqlite3BlobCompare (5 samples, 0.01%)_platform_memset (8 samples, 0.02%)sqlite3MemMalloc (6 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (5 samples, 0.01%)pcache1FetchStage2 (10 samples, 0.03%)pcache1Alloc (9 samples, 0.02%)sqlite3Malloc (8 samples, 0.02%)getPageNormal (20 samples, 0.05%)pcache1Fetch (11 samples, 0.03%)btreeGetUnusedPage (21 samples, 0.06%)allocateBtreePage (25 samples, 0.07%)sqlite3BtreeCreateTable (27 samples, 0.07%)sqlite3BtreeCursor (8 samples, 0.02%)pcache1FetchStage2 (7 samples, 0.02%)pcache1Fetch (68 samples, 0.18%)unixRead (1,331 samples, 3.57%)unix..pread (1,324 samples, 3.56%)preadgetAndInitPage (1,420 samples, 3.81%)getA..getPageMMap (1,414 samples, 3.80%)getP..getPageNormal (1,411 samples, 3.79%)getP..readDbPage (1,339 samples, 3.60%)read..walFindFrame (7 samples, 0.02%)_platform_memcmp (22 samples, 0.06%)sqlite3BtreeIndexMoveto (1,570 samples, 4.22%)sqlit..sqlite3VdbeRecordCompareWithSkip (64 samples, 0.17%)DYLD-STUB$$bzero (4 samples, 0.01%)_platform_memmove (30 samples, 0.08%)_platform_memmove (4 samples, 0.01%)_platform_memset (7 samples, 0.02%)_xzm_xzone_free_freelist (6 samples, 0.02%)mach_absolute_time (6 samples, 0.02%)_platform_memset (10 samples, 0.03%)pcache1Fetch (8 samples, 0.02%)getPageMMap (20 samples, 0.05%)getPageNormal (20 samples, 0.05%)allocateBtreePage (22 samples, 0.06%)btreeGetUnusedPage (21 samples, 0.06%)btreeComputeFreeSpace (4 samples, 0.01%)computeCellSize (12 samples, 0.03%)cellSizePtrIdxLeaf (6 samples, 0.02%)_platform_memmove (7 samples, 0.02%)dropCell (12 samples, 0.03%)freeSpace (4 samples, 0.01%)pageFreeArray (35 samples, 0.09%)freeSpace (12 samples, 0.03%)_platform_memmove (13 samples, 0.03%)editPage (83 samples, 0.22%)pageInsertArray (40 samples, 0.11%)pageFindSlot (7 samples, 0.02%)pcache1FetchStage2 (5 samples, 0.01%)pcache1Fetch (47 samples, 0.13%)pthread_mutex_unlock (12 samples, 0.03%)_platform_memmove (4 samples, 0.01%)getPageNormal (654 samples, 1.76%)readDbPage (603 samples, 1.62%)unixRead (601 samples, 1.61%)pread (596 samples, 1.60%)getPageMMap (657 samples, 1.76%)getAndInitPage (664 samples, 1.78%)g.._platform_memmove (8 samples, 0.02%)insertCell (13 samples, 0.03%)sqlite3MemMalloc (8 samples, 0.02%)_xzm_xzone_malloc_tiny (5 samples, 0.01%)sqlite3Malloc (16 samples, 0.04%)pcache1Alloc (23 samples, 0.06%)_xzm_free (4 samples, 0.01%)pcache1Free (9 samples, 0.02%)_xzm_xzone_malloc_small_freelist (5 samples, 0.01%)sqlite3MemMalloc (7 samples, 0.02%)sqlite3Malloc (22 samples, 0.06%)sqlite3MemSize (11 samples, 0.03%)xzm_malloc_zone_size (7 samples, 0.02%)balance (991 samples, 2.66%)ba..defragmentPage (12 samples, 0.03%)_platform_memmove (5 samples, 0.01%)pageFindSlot (7 samples, 0.02%)pcache1FetchStage2 (7 samples, 0.02%)pthread_mutex_lock (6 samples, 0.02%)pcache1Fetch (232 samples, 0.62%)pthread_mutex_unlock (11 samples, 0.03%)unixRead (364 samples, 0.98%)pread (361 samples, 0.97%)getPageNormal (608 samples, 1.63%)readDbPage (368 samples, 0.99%)getPageMMap (620 samples, 1.66%)getAndInitPage (643 samples, 1.73%)getPageNormal (9 samples, 0.02%)pcache1Fetch (18 samples, 0.05%)pthread_mutex_unlock (4 samples, 0.01%)getPageMMap (22 samples, 0.06%)getPageNormal (20 samples, 0.05%)getAndInitPage (30 samples, 0.08%)getPageNormal (7 samples, 0.02%)moveToRoot (38 samples, 0.10%)DYLD-STUB$$memcmp (32 samples, 0.09%)_platform_memcmp (502 samples, 1.35%)sqlite3VdbeRecordCompareWithSkip (817 samples, 2.19%)s..sqlite3BtreeIndexMoveto (1,764 samples, 4.74%)sqlite..vdbeRecordCompareInt (23 samples, 0.06%)sqlite3BtreeTableMoveto (10 samples, 0.03%)sqlite3BtreeInsert (2,896 samples, 7.78%)sqlite3Btre..sqlite3VdbeRecordCompareWithSkip (21 samples, 0.06%)_platform_memset (4 samples, 0.01%)_platform_memset (7 samples, 0.02%)pcache1ResizeHash (17 samples, 0.05%)sqlite3Malloc (5 samples, 0.01%)pcache1Create (27 samples, 0.07%)sqlite3Malloc (5 samples, 0.01%)sqlite3MemMalloc (6 samples, 0.02%)sqlite3Malloc (21 samples, 0.06%)sqlite3MemSize (8 samples, 0.02%)xzm_malloc_zone_size (6 samples, 0.02%)sqlite3MemMalloc (5 samples, 0.01%)_xzm_xzone_malloc_small_freelist (4 samples, 0.01%)sqlite3PagerSetPagesize (20 samples, 0.05%)pcache1Alloc (11 samples, 0.03%)sqlite3Malloc (8 samples, 0.02%)sqlite3BtreeOpen (79 samples, 0.21%)getPageNormal (6 samples, 0.02%)pcache1Fetch (6 samples, 0.02%)getPageMMap (7 samples, 0.02%)moveToChild (12 samples, 0.03%)getAndInitPage (10 samples, 0.03%)moveToRoot (5 samples, 0.01%)getAndInitPage (5 samples, 0.01%)getPageMMap (4 samples, 0.01%)sqlite3BtreeTableMoveto (42 samples, 0.11%)sqlite3GetVarint (9 samples, 0.02%)pcache1Unpin (4 samples, 0.01%)sqlite3VdbeFreeCursorNN (12 samples, 0.03%)btreeReleaseAllCursorPages (8 samples, 0.02%)releaseMemArray (15 samples, 0.04%)pcache1Unpin (13 samples, 0.03%)pthread_mutex_unlock (8 samples, 0.02%)btreeReleaseAllCursorPages (65 samples, 0.17%)sqlite3PcacheRelease (32 samples, 0.09%)_xzm_free (6 samples, 0.02%)mach_absolute_time (6 samples, 0.02%)pcache1Free (12 samples, 0.03%)btreeEndTransaction (5 samples, 0.01%)pager_end_transaction (10 samples, 0.03%)sqlite3BtreeRollback (19 samples, 0.05%)sqlite3PagerRollback (12 samples, 0.03%)pager_unlock (4 samples, 0.01%)pcache1Destroy (7 samples, 0.02%)pcache1Free (9 samples, 0.02%)_xzm_xzone_free_freelist (5 samples, 0.01%)pcache1Truncate (27 samples, 0.07%)pcache1TruncateUnsafe (26 samples, 0.07%)sqlite3MemSize (12 samples, 0.03%)xzm_malloc_zone_size (10 samples, 0.03%)sqlite3BtreeClose (103 samples, 0.28%)sqlite3PagerClose (58 samples, 0.16%)sqlite3VdbeHalt (206 samples, 0.55%)sqlite3VdbeFreeCursorNN (183 samples, 0.49%)sqlite3VdbeMemGrow (10 samples, 0.03%)sqlite3DbMallocRawNN (6 samples, 0.02%)sqlite3VdbeRecordCompareWithSkip (6 samples, 0.02%)sqlite3VdbeExec (5,178 samples, 13.91%)sqlite3VdbeExecrusqlite::statement::Statement::execute_with_bound_parameters (5,194 samples, 13.95%)rusqlite::statement::..sqlite3_step (5,193 samples, 13.95%)sqlite3_stepwalIndexAppend (19 samples, 0.05%)unixWrite (1,914 samples, 5.14%)unixWr..pwrite (1,912 samples, 5.13%)pwritepagerWalFrames (2,272 samples, 6.10%)pagerWal..walWriteOneFrame (2,244 samples, 6.03%)walWrite..walEncodeFrame (329 samples, 0.88%)walChecksumBytes (329 samples, 0.88%)pcache1Unpin (4 samples, 0.01%)sqlite3PcacheCleanAll (22 samples, 0.06%)sqlite3PcacheDirtyList (108 samples, 0.29%)sqlite3VdbeExec (2,404 samples, 6.46%)sqlite3V..sqlite3VdbeHalt (2,404 samples, 6.46%)sqlite3V..vdbeCommit (2,404 samples, 6.46%)vdbeComm..sqlite3BtreeCommitPhaseOne (2,404 samples, 6.46%)sqlite3B..sqlite3PagerCommitPhaseOne (2,404 samples, 6.46%)sqlite3P..unixRead (284 samples, 0.76%)pread (283 samples, 0.76%)unixSync (50 samples, 0.13%)fsync (50 samples, 0.13%)unixWrite (1,203 samples, 3.23%)uni..pwrite (1,202 samples, 3.23%)pwr..sqlite3WalCheckpoint (1,566 samples, 4.21%)sqlit..rusqlite::transaction::Transaction::commit (3,971 samples, 10.66%)rusqlite::transa..rusqlite::Connection::execute_batch (3,971 samples, 10.66%)rusqlite::Connec..sqlite3_step (3,971 samples, 10.66%)sqlite3_stepsqlite3WalDefaultHook (1,567 samples, 4.21%)sqlit..sqlite3_wal_checkpoint_v2 (1,567 samples, 4.21%)sqlit..sqlite3BtreeCheckpoint (1,567 samples, 4.21%)sqlit.._xzm_xzone_malloc_tiny (9 samples, 0.02%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (5 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (5 samples, 0.01%)torii_common::felt_to_blob (18 samples, 0.05%)torii_erc20::storage::Erc20Storage::insert_transfers_batch (9,220 samples, 24.76%)torii_erc20::storage::Erc20Storage::ins..<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (11,061 samples, 29.70%)<torii_erc20::sink::Erc20Sink as torii::etl::sin..torii::etl::decoder::DecoderId::new (6 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.01%)rusqlite::inner_connection::InnerConnection::prepare (5 samples, 0.01%)sqlite3LockAndPrepare (5 samples, 0.01%)sqlite3Prepare (5 samples, 0.01%)sqlite3RunParser (5 samples, 0.01%)yy_reduce (4 samples, 0.01%)torii_erc721::storage::Erc721Storage::has_token_metadata (6 samples, 0.02%)rusqlite::inner_connection::InnerConnection::prepare (21 samples, 0.06%)sqlite3LockAndPrepare (21 samples, 0.06%)sqlite3Prepare (21 samples, 0.06%)sqlite3RunParser (20 samples, 0.05%)yy_reduce (16 samples, 0.04%)sqlite3Select (13 samples, 0.03%)unixShmLock (7 samples, 0.02%)fcntl (7 samples, 0.02%)__fcntl (7 samples, 0.02%)btreeBeginTrans (9 samples, 0.02%)sqlite3PagerSharedLock (9 samples, 0.02%)walTryBeginRead (9 samples, 0.02%)sqlite3MemMalloc (4 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.01%)pcache1Fetch (5 samples, 0.01%)pcache1FetchStage2 (5 samples, 0.01%)pcache1Alloc (5 samples, 0.01%)sqlite3Malloc (5 samples, 0.01%)getPageNormal (67 samples, 0.18%)readDbPage (62 samples, 0.17%)unixRead (61 samples, 0.16%)pread (61 samples, 0.16%)getAndInitPage (69 samples, 0.19%)getPageMMap (68 samples, 0.18%)readDbPage (12 samples, 0.03%)unixRead (11 samples, 0.03%)pread (11 samples, 0.03%)moveToRoot (14 samples, 0.04%)getAndInitPage (14 samples, 0.04%)getPageMMap (14 samples, 0.04%)getPageNormal (14 samples, 0.04%)sqlite3BtreeIndexMoveto (94 samples, 0.25%)sqlite3VdbeRecordCompareWithSkip (6 samples, 0.02%)<rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance (106 samples, 0.28%)sqlite3_step (106 samples, 0.28%)sqlite3VdbeExec (106 samples, 0.28%)pcache1Unpin (5 samples, 0.01%)sqlite3VdbeFreeCursorNN (6 samples, 0.02%)btreeReleaseAllCursorPages (6 samples, 0.02%)pager_unlock (12 samples, 0.03%)unixShmLock (12 samples, 0.03%)fcntl (12 samples, 0.03%)__fcntl (12 samples, 0.03%)core::ptr::drop_in_place<rusqlite::row::Rows> (21 samples, 0.06%)sqlite3_reset (21 samples, 0.06%)sqlite3VdbeReset (21 samples, 0.06%)sqlite3VdbeHalt (21 samples, 0.06%)vdbeCommit (14 samples, 0.04%)sqlite3BtreeCommitPhaseTwo (13 samples, 0.03%)torii_erc721::storage::Erc721Storage::has_token_uri (150 samples, 0.40%)rusqlite::statement::Statement::query_row (128 samples, 0.34%)rusqlite::statement::Statement::bind_parameter (4 samples, 0.01%)pcache1Unpin (5 samples, 0.01%)allocateCursor (11 samples, 0.03%)sqlite3VdbeFreeCursorNN (8 samples, 0.02%)btreeReleaseAllCursorPages (8 samples, 0.02%)pcache1Alloc (4 samples, 0.01%)pcache1Fetch (8 samples, 0.02%)pcache1FetchStage2 (5 samples, 0.01%)getPageMMap (47 samples, 0.13%)getPageNormal (47 samples, 0.13%)readDbPage (38 samples, 0.10%)unixRead (38 samples, 0.10%)pread (38 samples, 0.10%)moveToChild (49 samples, 0.13%)getAndInitPage (49 samples, 0.13%)pcache1Fetch (4 samples, 0.01%)pcache1FetchStage2 (4 samples, 0.01%)pcache1Alloc (4 samples, 0.01%)btreeLast (55 samples, 0.15%)moveToRoot (6 samples, 0.02%)getAndInitPage (6 samples, 0.02%)getPageMMap (5 samples, 0.01%)getPageNormal (5 samples, 0.01%)btreeParseCellPtr (4 samples, 0.01%)moveToRoot (4 samples, 0.01%)sqlite3Malloc (6 samples, 0.02%)sqlite3MemMalloc (6 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (6 samples, 0.02%)pcache1Alloc (7 samples, 0.02%)pcache1Fetch (10 samples, 0.03%)pcache1FetchStage2 (8 samples, 0.02%)_platform_memmove (4 samples, 0.01%)unixRead (170 samples, 0.46%)pread (166 samples, 0.45%)getAndInitPage (184 samples, 0.49%)getPageMMap (182 samples, 0.49%)getPageNormal (182 samples, 0.49%)readDbPage (172 samples, 0.46%)unixRead (5 samples, 0.01%)_platform_memmove (5 samples, 0.01%)moveToRoot (7 samples, 0.02%)getAndInitPage (7 samples, 0.02%)getPageMMap (7 samples, 0.02%)getPageNormal (7 samples, 0.02%)readDbPage (6 samples, 0.02%)sqlite3BtreeIndexMoveto (205 samples, 0.55%)sqlite3VdbeRecordCompareWithSkip (11 samples, 0.03%)_platform_memmove (5 samples, 0.01%)dropCell (4 samples, 0.01%)_platform_memmove (4 samples, 0.01%)pageFreeArray (7 samples, 0.02%)freeSpace (5 samples, 0.01%)editPage (15 samples, 0.04%)pageInsertArray (5 samples, 0.01%)pcache1Fetch (8 samples, 0.02%)unixRead (62 samples, 0.17%)pread (62 samples, 0.17%)getPageMMap (72 samples, 0.19%)getPageNormal (72 samples, 0.19%)readDbPage (64 samples, 0.17%)getAndInitPage (73 samples, 0.20%)pcache1Free (4 samples, 0.01%)rebuildPage (4 samples, 0.01%)balance (124 samples, 0.33%)defragmentPage (4 samples, 0.01%)_xzm_chunk_list_pop (4 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (8 samples, 0.02%)sqlite3MemMalloc (11 samples, 0.03%)sqlite3Malloc (14 samples, 0.04%)pcache1Alloc (18 samples, 0.05%)pcache1FetchStage2 (22 samples, 0.06%)pcache1Fetch (32 samples, 0.09%)unixRead (277 samples, 0.74%)pread (273 samples, 0.73%)readDbPage (286 samples, 0.77%)walFindFrame (8 samples, 0.02%)getPageNormal (321 samples, 0.86%)getAndInitPage (324 samples, 0.87%)getPageMMap (322 samples, 0.86%)sqlite3Malloc (7 samples, 0.02%)sqlite3MemMalloc (4 samples, 0.01%)pcache1FetchStage2 (12 samples, 0.03%)pcache1Alloc (11 samples, 0.03%)pcache1Fetch (15 samples, 0.04%)_platform_memmove (18 samples, 0.05%)unixRead (20 samples, 0.05%)readDbPage (22 samples, 0.06%)getPageMMap (39 samples, 0.10%)getPageNormal (39 samples, 0.10%)getAndInitPage (44 samples, 0.12%)moveToRoot (48 samples, 0.13%)DYLD-STUB$$memcmp (4 samples, 0.01%)sqlite3VdbeRecordCompareWithSkip (39 samples, 0.10%)_platform_memcmp (24 samples, 0.06%)sqlite3BtreeIndexMoveto (434 samples, 1.17%)sqlite3BtreeInsert (581 samples, 1.56%)pcache1ResizeHash (5 samples, 0.01%)pcache1Create (6 samples, 0.02%)sqlite3BtreeOpen (11 samples, 0.03%)moveToChild (14 samples, 0.04%)getAndInitPage (14 samples, 0.04%)getPageMMap (14 samples, 0.04%)getPageNormal (13 samples, 0.03%)readDbPage (12 samples, 0.03%)unixRead (12 samples, 0.03%)pread (12 samples, 0.03%)sqlite3BtreeTableMoveto (19 samples, 0.05%)sqlite3VdbeFreeCursorNN (4 samples, 0.01%)btreeReleaseAllCursorPages (4 samples, 0.01%)_xzm_xzone_free_freelist (4 samples, 0.01%)pcache1Free (22 samples, 0.06%)sqlite3MemSize (7 samples, 0.02%)xzm_malloc_zone_size (6 samples, 0.02%)pcache1Unpin (26 samples, 0.07%)btreeReleaseAllCursorPages (32 samples, 0.09%)sqlite3PcacheRelease (5 samples, 0.01%)_xzm_free_outlined (17 samples, 0.05%)_xzm_xzone_free_freelist (6 samples, 0.02%)pcache1Free (31 samples, 0.08%)pcache1Destroy (42 samples, 0.11%)pcache1EnforceMaxPage (41 samples, 0.11%)sqlite3VdbeHalt (86 samples, 0.23%)sqlite3VdbeFreeCursorNN (84 samples, 0.23%)sqlite3BtreeClose (48 samples, 0.13%)sqlite3PagerClose (44 samples, 0.12%)rusqlite::statement::Statement::execute_with_bound_parameters (1,016 samples, 2.73%)ru..sqlite3_step (1,014 samples, 2.72%)sq..sqlite3VdbeExec (1,012 samples, 2.72%)sq..walIndexAppend (5 samples, 0.01%)unixWrite (477 samples, 1.28%)pwrite (476 samples, 1.28%)pagerWalFrames (561 samples, 1.51%)walWriteOneFrame (554 samples, 1.49%)walEncodeFrame (76 samples, 0.20%)walChecksumBytes (76 samples, 0.20%)sqlite3PcacheDirtyList (16 samples, 0.04%)sqlite3BtreeCommitPhaseOne (581 samples, 1.56%)sqlite3PagerCommitPhaseOne (581 samples, 1.56%)sqlite3VdbeExec (582 samples, 1.56%)sqlite3VdbeHalt (582 samples, 1.56%)vdbeCommit (582 samples, 1.56%)unixRead (82 samples, 0.22%)pread (82 samples, 0.22%)unixSync (13 samples, 0.03%)fsync (13 samples, 0.03%)rusqlite::transaction::Transaction::commit (978 samples, 2.63%)ru..rusqlite::Connection::execute_batch (978 samples, 2.63%)ru..sqlite3_step (978 samples, 2.63%)sq..sqlite3WalDefaultHook (396 samples, 1.06%)sqlite3_wal_checkpoint_v2 (396 samples, 1.06%)sqlite3BtreeCheckpoint (396 samples, 1.06%)sqlite3WalCheckpoint (396 samples, 1.06%)unixWrite (290 samples, 0.78%)pwrite (290 samples, 0.78%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (13,252 samples, 35.59%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::S..<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (2,170 samples, 5.83%)<torii_..torii_erc721::storage::Erc721Storage::insert_transfers_batch (2,003 samples, 5.38%)torii_e.._xzm_free (10 samples, 0.03%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (6 samples, 0.02%)_xzm_free (5 samples, 0.01%)DYLD-STUB$$free (5 samples, 0.01%)_free (6 samples, 0.02%)_xzm_free (32 samples, 0.09%)_platform_memset (4 samples, 0.01%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (52 samples, 0.14%)hashbrown::map::HashMap<K,V,S,A>::insert (17 samples, 0.05%)core::hash::BuildHasher::hash_one (12 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (7 samples, 0.02%)torii::run::_{{closure}}::_{{closure}} (22,862 samples, 61.39%)torii::run::_{{closure}}::_{{closure}}sqlite3WhereBegin (7 samples, 0.02%)sqlite3DeleteFrom (16 samples, 0.04%)sqlite3WhereEnd (4 samples, 0.01%)sqlite3ExprCodeTarget (5 samples, 0.01%)sqlite3Update (6 samples, 0.02%)sqlite3GenerateConstraintChecks (7 samples, 0.02%)sqlite3RunParser (47 samples, 0.13%)yy_reduce (39 samples, 0.10%)sqlite3Insert (19 samples, 0.05%)rusqlite::inner_connection::InnerConnection::prepare (48 samples, 0.13%)sqlite3LockAndPrepare (48 samples, 0.13%)sqlite3Prepare (48 samples, 0.13%)unixShmLock (5 samples, 0.01%)fcntl (5 samples, 0.01%)__fcntl (5 samples, 0.01%)btreeBeginTrans (9 samples, 0.02%)sqlite3PagerSharedLock (6 samples, 0.02%)walTryBeginRead (6 samples, 0.02%)unixRead (7 samples, 0.02%)pread (7 samples, 0.02%)moveToChild (11 samples, 0.03%)getAndInitPage (11 samples, 0.03%)getPageMMap (10 samples, 0.03%)getPageNormal (10 samples, 0.03%)readDbPage (8 samples, 0.02%)btreeLast (18 samples, 0.05%)moveToRoot (7 samples, 0.02%)getAndInitPage (7 samples, 0.02%)getPageMMap (6 samples, 0.02%)getPageNormal (6 samples, 0.02%)readDbPage (5 samples, 0.01%)unixRead (5 samples, 0.01%)pread (5 samples, 0.01%)unixRead (15 samples, 0.04%)pread (15 samples, 0.04%)btreeOverwriteOverflowCell (20 samples, 0.05%)getPageMMap (17 samples, 0.05%)getPageNormal (17 samples, 0.05%)readDbPage (16 samples, 0.04%)pcache1Fetch (4 samples, 0.01%)pcache1FetchStage2 (4 samples, 0.01%)pcache1Alloc (4 samples, 0.01%)sqlite3Malloc (4 samples, 0.01%)sqlite3MemMalloc (4 samples, 0.01%)unixRead (26 samples, 0.07%)pread (26 samples, 0.07%)getPageNormal (31 samples, 0.08%)readDbPage (27 samples, 0.07%)getAndInitPage (33 samples, 0.09%)getPageMMap (32 samples, 0.09%)getPageNormal (4 samples, 0.01%)readDbPage (4 samples, 0.01%)unixRead (4 samples, 0.01%)pread (4 samples, 0.01%)moveToRoot (5 samples, 0.01%)getAndInitPage (5 samples, 0.01%)getPageMMap (5 samples, 0.01%)sqlite3BtreeIndexMoveto (39 samples, 0.10%)getAndInitPage (5 samples, 0.01%)getPageMMap (5 samples, 0.01%)getPageNormal (5 samples, 0.01%)readDbPage (4 samples, 0.01%)unixRead (4 samples, 0.01%)pread (4 samples, 0.01%)sqlite3BtreeInsert (11 samples, 0.03%)sqlite3BtreeIndexMoveto (9 samples, 0.02%)sqlite3BtreeTableMoveto (8 samples, 0.02%)moveToChild (8 samples, 0.02%)getAndInitPage (8 samples, 0.02%)getPageMMap (8 samples, 0.02%)getPageNormal (8 samples, 0.02%)readDbPage (8 samples, 0.02%)unixRead (8 samples, 0.02%)pread (8 samples, 0.02%)rusqlite::statement::Statement::execute_with_bound_parameters (116 samples, 0.31%)sqlite3_step (116 samples, 0.31%)sqlite3VdbeExec (115 samples, 0.31%)rusqlite::Connection::execute (168 samples, 0.45%)sqlite3LockAndPrepare (4 samples, 0.01%)unixWrite (115 samples, 0.31%)pwrite (115 samples, 0.31%)pagerWalFrames (139 samples, 0.37%)walWriteOneFrame (134 samples, 0.36%)walEncodeFrame (18 samples, 0.05%)walChecksumBytes (18 samples, 0.05%)sqlite3BtreeCommitPhaseOne (141 samples, 0.38%)sqlite3PagerCommitPhaseOne (141 samples, 0.38%)sqlite3VdbeExec (146 samples, 0.39%)sqlite3VdbeHalt (145 samples, 0.39%)vdbeCommit (144 samples, 0.39%)unixRead (22 samples, 0.06%)pread (22 samples, 0.06%)unixSync (4 samples, 0.01%)fsync (4 samples, 0.01%)rusqlite::Connection::execute_batch (243 samples, 0.65%)sqlite3_step (239 samples, 0.64%)sqlite3WalDefaultHook (93 samples, 0.25%)sqlite3_wal_checkpoint_v2 (93 samples, 0.25%)sqlite3BtreeCheckpoint (93 samples, 0.25%)sqlite3WalCheckpoint (93 samples, 0.25%)unixWrite (66 samples, 0.18%)pwrite (66 samples, 0.18%)unixRead (7 samples, 0.02%)pread (7 samples, 0.02%)moveToChild (10 samples, 0.03%)getAndInitPage (10 samples, 0.03%)getPageMMap (10 samples, 0.03%)getPageNormal (10 samples, 0.03%)readDbPage (8 samples, 0.02%)btreeLast (17 samples, 0.05%)moveToRoot (6 samples, 0.02%)getAndInitPage (6 samples, 0.02%)getPageMMap (6 samples, 0.02%)getPageNormal (6 samples, 0.02%)readDbPage (5 samples, 0.01%)unixRead (5 samples, 0.01%)pread (5 samples, 0.01%)getAndInitPage (10 samples, 0.03%)getPageMMap (10 samples, 0.03%)getPageNormal (10 samples, 0.03%)readDbPage (9 samples, 0.02%)unixRead (9 samples, 0.02%)pread (9 samples, 0.02%)moveToRoot (8 samples, 0.02%)getAndInitPage (8 samples, 0.02%)getPageMMap (8 samples, 0.02%)getPageNormal (8 samples, 0.02%)readDbPage (7 samples, 0.02%)unixRead (7 samples, 0.02%)pread (7 samples, 0.02%)sqlite3BtreeIndexMoveto (26 samples, 0.07%)sqlite3VdbeRecordCompareWithSkip (4 samples, 0.01%)getAndInitPage (15 samples, 0.04%)getPageMMap (15 samples, 0.04%)getPageNormal (15 samples, 0.04%)readDbPage (14 samples, 0.04%)unixRead (14 samples, 0.04%)pread (14 samples, 0.04%)balance (26 samples, 0.07%)pager_write (4 samples, 0.01%)pcache1Fetch (6 samples, 0.02%)unixRead (31 samples, 0.08%)pread (31 samples, 0.08%)getAndInitPage (41 samples, 0.11%)getPageMMap (40 samples, 0.11%)getPageNormal (40 samples, 0.11%)readDbPage (33 samples, 0.09%)unixRead (7 samples, 0.02%)pread (7 samples, 0.02%)moveToRoot (11 samples, 0.03%)getAndInitPage (11 samples, 0.03%)getPageMMap (11 samples, 0.03%)getPageNormal (11 samples, 0.03%)readDbPage (8 samples, 0.02%)sqlite3VdbeRecordCompareWithSkip (5 samples, 0.01%)_platform_memcmp (4 samples, 0.01%)sqlite3BtreeIndexMoveto (63 samples, 0.17%)vdbeRecordCompareString (5 samples, 0.01%)_platform_memcmp (5 samples, 0.01%)sqlite3BtreeInsert (101 samples, 0.27%)btreeReleaseAllCursorPages (5 samples, 0.01%)pcache1Unpin (4 samples, 0.01%)sqlite3VdbeFreeCursorNN (6 samples, 0.02%)sqlite3VdbeHalt (15 samples, 0.04%)vdbeCloseStatement (8 samples, 0.02%)sqlite3BtreeSavepoint (8 samples, 0.02%)sqlite3PagerSavepoint (8 samples, 0.02%)memjrnlTruncate (6 samples, 0.02%)rusqlite::statement::Statement::execute_with_bound_parameters (162 samples, 0.44%)sqlite3_step (162 samples, 0.44%)sqlite3VdbeExec (162 samples, 0.44%)<torii_erc721::storage::Erc721Storage as torii_common::token_uri::TokenUriStore>::store_token_uri::_{{closure}} (583 samples, 1.57%)tokio::sync::semaphore::Semaphore::acquire::_{{closure}} (4 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (4 samples, 0.01%)<deduplicated_symbol> (15 samples, 0.04%)mio::waker::Waker::wake (15 samples, 0.04%)kevent (15 samples, 0.04%)pthread_cond_signal (7 samples, 0.02%)__psynch_cvsignal (7 samples, 0.02%)parking_lot::condvar::Condvar::notify_one_slow (11 samples, 0.03%)std::sys::pal::unix::time::Timespec::now (4 samples, 0.01%)clock_gettime (4 samples, 0.01%)clock_gettime_nsec_np (4 samples, 0.01%)mach_absolute_time (4 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (30 samples, 0.08%)futures_channel::mpsc::Receiver<T>::next_message (29 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (27 samples, 0.07%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (27 samples, 0.07%)tokio::runtime::context::with_scheduler (27 samples, 0.07%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (31 samples, 0.08%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (31 samples, 0.08%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (31 samples, 0.08%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (33 samples, 0.09%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (6 samples, 0.02%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (6 samples, 0.02%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (6 samples, 0.02%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (6 samples, 0.02%)reqwest::connect::with_timeout::_{{closure}} (6 samples, 0.02%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (6 samples, 0.02%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (6 samples, 0.02%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (5 samples, 0.01%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (5 samples, 0.01%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (5 samples, 0.01%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (17 samples, 0.05%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (17 samples, 0.05%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (16 samples, 0.04%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (22 samples, 0.06%)http_body_util::collected::Collected<B>::to_bytes (9 samples, 0.02%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (9 samples, 0.02%)reqwest::async_impl::request::RequestBuilder::send (10 samples, 0.03%)reqwest::async_impl::client::Client::execute_request (10 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (141 samples, 0.38%)starknet_types_core::felt::Felt::from_hex (139 samples, 0.37%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (139 samples, 0.37%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (133 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (75 samples, 0.20%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (144 samples, 0.39%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)serde_json::de::from_str (179 samples, 0.48%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (179 samples, 0.48%)serde_core::de::Deserializer::__deserialize_content_v1 (29 samples, 0.08%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (29 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (29 samples, 0.08%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (29 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (20 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (17 samples, 0.05%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (275 samples, 0.74%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::call::_{{closure}} (276 samples, 0.74%)torii_common::metadata::MetadataFetcher::decode_string_result (8 samples, 0.02%)torii_common::token_uri::fetch_token_uri_with_retry::_{{closure}} (285 samples, 0.77%)serde_json::de::from_trait (4 samples, 0.01%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (4 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.01%)serde_json::ser::to_vec (4 samples, 0.01%)hyper_util::client::legacy::connect::http::connect (4 samples, 0.01%)socket2::socket::Socket::new (4 samples, 0.01%)socket2::socket::Socket::connect (8 samples, 0.02%)__connect (8 samples, 0.02%)<core::pin::Pin<P> as core::future::future::Future>::poll (13 samples, 0.03%)socket2::socket::Socket::new (4 samples, 0.01%)socket (4 samples, 0.01%)hyper_util::client::legacy::connect::http::connect (6 samples, 0.02%)socket2::socket::Socket::connect (56 samples, 0.15%)__connect (56 samples, 0.15%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (79 samples, 0.21%)tokio::net::tcp::socket::TcpSocket::connect::_{{closure}} (57 samples, 0.15%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (25 samples, 0.07%)<&std::net::tcp::TcpStream as std::io::Read>::read (25 samples, 0.07%)__recvfrom (25 samples, 0.07%)security_framework::secure_transport::read_func (26 samples, 0.07%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (26 samples, 0.07%)tokio::io::poll_evented::PollEvented<E>::poll_read (26 samples, 0.07%)SSLRecordReadInternal (31 samples, 0.08%)SSLRecordServiceWriteQueueInternal (14 samples, 0.04%)security_framework::secure_transport::write_func (14 samples, 0.04%)tokio::io::poll_evented::PollEvented<E>::poll_write (14 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (14 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (14 samples, 0.04%)__sendto (14 samples, 0.04%)SSLInitPendingCiphers (4 samples, 0.01%)ccec_full_add_default_ws (4 samples, 0.01%)ccn_mulmod_p256 (22 samples, 0.06%)cczp_add_default_ws (4 samples, 0.01%)cczp_sub_default_ws (4 samples, 0.01%)ccec_mult_XYCZaddC_ws (39 samples, 0.10%)cczp_sub_ws (4 samples, 0.01%)ccn_mulmod_p256 (16 samples, 0.04%)ccn_cond_add (5 samples, 0.01%)ccn_sub_asm (4 samples, 0.01%)cczp_sub_default_ws (10 samples, 0.03%)ccec_mult_XYCZadd_ws (31 samples, 0.08%)ccec_mult_default_ws (79 samples, 0.21%)ccecdh_compute_shared_secret (85 samples, 0.23%)ccecdh_compute_shared_secret_ws (84 samples, 0.23%)ccec_mult_blinded_ws (81 samples, 0.22%)ccn_mulmod_p256 (16 samples, 0.04%)ccn_cond_add (6 samples, 0.02%)ccn_sub_asm (5 samples, 0.01%)ccec_mult_XYCZaddC_ws (36 samples, 0.10%)cczp_sub_default_ws (13 samples, 0.03%)ccn_mulmod_p256 (18 samples, 0.05%)ccn_cond_add (11 samples, 0.03%)ccn_sub_asm (6 samples, 0.02%)ccec_mult_XYCZadd_ws (36 samples, 0.10%)cczp_sub_default_ws (18 samples, 0.05%)ccec_generate_key_internal_fips_ws (82 samples, 0.22%)ccec_make_pub_from_priv_ws (82 samples, 0.22%)ccec_mult_blinded_ws (81 samples, 0.22%)ccec_mult_default_ws (79 samples, 0.21%)ccn_mulmod_p256 (21 samples, 0.06%)cczp_add_default_ws (4 samples, 0.01%)cczp_mul_ws (4 samples, 0.01%)ccn_cond_add (9 samples, 0.02%)ccn_sub_asm (7 samples, 0.02%)cczp_sub_default_ws (20 samples, 0.05%)ccec_mult_XYCZaddC_ws (52 samples, 0.14%)ccn_mulmod_p256 (15 samples, 0.04%)ccn_cond_add (7 samples, 0.02%)cczp_sub_default_ws (9 samples, 0.02%)ccec_mult_XYCZadd_ws (28 samples, 0.08%)ccec_mult_blinded_ws (87 samples, 0.23%)ccec_mult_default_ws (87 samples, 0.23%)cczp_inv_default_ws (6 samples, 0.02%)ccec_sign_composite_msg_ws (99 samples, 0.27%)ccec_sign_composite_ws (98 samples, 0.26%)ccec_sign_internal_ws (98 samples, 0.26%)ccec_sign_internal_inner_ws (98 samples, 0.26%)ccec_affinify_x_only_ws (4 samples, 0.01%)ccn_p256_inv_asm_ws (4 samples, 0.01%)ccn_mulmod_p256 (4 samples, 0.01%)ccn_mulmod_p256 (15 samples, 0.04%)cc_ws_alloc (5 samples, 0.01%)cc_try_abort_if (5 samples, 0.01%)ccn_add_asm (5 samples, 0.01%)ccn_mux (6 samples, 0.02%)cczp_add_default_ws (22 samples, 0.06%)ccn_sub_asm (5 samples, 0.01%)cczp_sub_default_ws (10 samples, 0.03%)ccec_double_ws (51 samples, 0.14%)ccn_mulmod_p256 (9 samples, 0.02%)ccec_full_add_normalized_ws (16 samples, 0.04%)ccec_add_normalized_ws (16 samples, 0.04%)ccec_add_normalized_ws (4 samples, 0.01%)ccec_full_sub_normalized_ws (6 samples, 0.02%)ccn_recode_jsf_column (4 samples, 0.01%)ccec_twin_mult_ws (80 samples, 0.21%)sslEcdhCreateKey (274 samples, 0.74%)ccec_generate_key (273 samples, 0.73%)ccec_generate_key_fips_ws (272 samples, 0.73%)ccec_pairwise_consistency_check_ws (190 samples, 0.51%)ccec_verify_composite_msg_ws (91 samples, 0.24%)ccec_verify_composite_digest_ws (91 samples, 0.24%)ccec_verify_internal_with_base_ws (90 samples, 0.24%)cczp_inv_default_ws (5 samples, 0.01%)SSLEncodeKeyExchange (360 samples, 0.97%)SSLPrepareAndQueueMessage (364 samples, 0.98%)tls_handshake_continue (370 samples, 0.99%)SSLAdvanceHandshake (370 samples, 0.99%)_xpc_pipe_routine (5 samples, 0.01%)_asl_mt_shim_send_message (8 samples, 0.02%)asl_log (15 samples, 0.04%)_asl_lib_vlog (15 samples, 0.04%)_asl_send_message (15 samples, 0.04%)tls_metric_event_add_string (17 samples, 0.05%)_asl_mt_shim_send_message (4 samples, 0.01%)SSLAdvanceHandshake (24 samples, 0.06%)tls_metric_client_finished (23 samples, 0.06%)tls_metric_event_done (5 samples, 0.01%)asl_log (5 samples, 0.01%)_asl_lib_vlog (5 samples, 0.01%)_asl_send_message (5 samples, 0.01%)SSLProcessFinished (4 samples, 0.01%)tls12ComputeFinishedMac (4 samples, 0.01%)tls_handshake_internal_prf (4 samples, 0.01%)tlsPHash (4 samples, 0.01%)ccn_mulmod_p256 (4 samples, 0.01%)ccec_double_ws (6 samples, 0.02%)ccec_twin_mult_ws (13 samples, 0.03%)sslRawVerify (16 samples, 0.04%)ccec_verify (16 samples, 0.04%)ccec_verify_digest_ws (16 samples, 0.04%)ccec_verify_internal_with_base_ws (16 samples, 0.04%)cczp_mm_mul_ws (4 samples, 0.01%)ccn_sqr_ws (6 samples, 0.02%)ccn_addmul1_asm (5 samples, 0.01%)SSLProcessHandshakeMessage (39 samples, 0.10%)SSLProcessServerKeyExchange (34 samples, 0.09%)SSLVerifySignedServerKeyExchangeTls12 (33 samples, 0.09%)sslRsaVerify (17 samples, 0.05%)ccrsa_verify_pkcs1v15 (17 samples, 0.05%)ccrsa_verify_pkcs1v15_internal_ws (16 samples, 0.04%)ccrsa_pub_crypt_ws (16 samples, 0.04%)cczp_power_fast_ws (16 samples, 0.04%)cczp_mm_sqr_ws (12 samples, 0.03%)cczp_mm_redc_ws (5 samples, 0.01%)ccn_addmul1_asm (5 samples, 0.01%)SSLUpdateHandshakeMacs (10 samples, 0.03%)HashSHA384Update (5 samples, 0.01%)ccdigest_update (4 samples, 0.01%)ccdigest_update_internal (4 samples, 0.01%)AccelerateCrypto_SHA512_compress_hwassist (4 samples, 0.01%)SecECKeyGetNamedCurve (7 samples, 0.02%)SecKeyCopyAttributes (7 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (7 samples, 0.02%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (6 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (6 samples, 0.02%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (4 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (4 samples, 0.01%)SecKeyCopyExponent (9 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (8 samples, 0.02%)Security::CssmClient::WrapKey::activate() (5 samples, 0.01%)Security::CssmClient::Crypt::activate() (5 samples, 0.01%)Security::CssmClient::AttachmentImpl::activate() (4 samples, 0.01%)CSSM_ModuleAttach (4 samples, 0.01%)SecKeyCopyModulus (10 samples, 0.03%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (10 samples, 0.03%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (8 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (8 samples, 0.02%)CSSM_QueryKeySizeInBits (5 samples, 0.01%)cssm_QueryKeySizeInBits(long, unsigned long long, cssm_context const*, cssm_key const*, cssm_key_size*) (5 samples, 0.01%)CSSM_CL_CertGetFirstCachedFieldValue (7 samples, 0.02%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (7 samples, 0.02%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (7 samples, 0.02%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (6 samples, 0.02%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (6 samples, 0.02%)DecodedExtensions::decodeFromNss(NSS_CertExtension**) (6 samples, 0.02%)cssm_CertCache(long, cssm_data const*, long*) (10 samples, 0.03%)AppleX509CLSession::CertCache(Security::CssmData const&, long&) (10 samples, 0.03%)DecodedCert::DecodedCert(AppleX509CLSession&, Security::CssmData const&) (10 samples, 0.03%)SEC_ASN1Decode (4 samples, 0.01%)Security::KeychainCore::Certificate::certHandle() (11 samples, 0.03%)CSSM_CL_CertCache (11 samples, 0.03%)Security::KeychainCore::Certificate::publicKey() (23 samples, 0.06%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (23 samples, 0.06%)SecTrustCopyPublicKey (30 samples, 0.08%)SecCertificateCopyPublicKey$LEGACYMAC (30 samples, 0.08%)_CFRelease (5 samples, 0.01%)SecCDSAKeyDestroy(__SecKey*) (5 samples, 0.01%)CFBasicHashAddValue (4 samples, 0.01%)DERParseSequenceContentToObject (4 samples, 0.01%)_CFRelease (4 samples, 0.01%)SecCertificateParse (32 samples, 0.09%)createNormalizedX501Name (4 samples, 0.01%)SecCertificateCreateWithData (35 samples, 0.09%)tls_handshake_message_callback (108 samples, 0.29%)tls_helper_set_peer_pubkey (108 samples, 0.29%)tls_helper_create_cfarray_from_certificates (37 samples, 0.10%)SecPolicyCreateSSL_internal (5 samples, 0.01%)SecCEPCrlDistributionPoints (4 samples, 0.01%)parseGeneralNamesContent (4 samples, 0.01%)appendCRLDPFromGeneralNames (4 samples, 0.01%)CFURLCreateWithBytes (4 samples, 0.01%)SecCertificateCreateWithData (17 samples, 0.05%)SecCertificateParse (16 samples, 0.04%)SSLProcessHandshakeRecordInner (208 samples, 0.56%)tls_verify_peer_cert (24 samples, 0.06%)sslCreateSecTrust (24 samples, 0.06%)tls_helper_create_peer_trust (24 samples, 0.06%)tls_helper_create_cfarray_from_certificates (19 samples, 0.05%)SSLHandshake (625 samples, 1.68%)SSLHandshakeProceed (625 samples, 1.68%)tls_handshake_process (210 samples, 0.56%)-[OS_dispatch_data dealloc] (4 samples, 0.01%)_dispatch_root_queue_poke_slow (4 samples, 0.01%)_pthread_workqueue_addthreads (4 samples, 0.01%)__workq_kernreturn (4 samples, 0.01%)-[OS_xpc_object dealloc] (7 samples, 0.02%)_xpc_dictionary_dispose (7 samples, 0.02%)_xpc_dictionary_node_free (6 samples, 0.02%)-[OS_xpc_object dealloc] (6 samples, 0.02%)_xpc_array_dispose (6 samples, 0.02%)-[OS_xpc_object dealloc] (6 samples, 0.02%)_xpc_array_dispose (5 samples, 0.01%)-[OS_xpc_object dealloc] (5 samples, 0.01%)_xpc_dictionary_dispose (5 samples, 0.01%)_xpc_dictionary_node_free (5 samples, 0.01%)-[OS_xpc_object dealloc] (5 samples, 0.01%)_xpc_array_dispose (5 samples, 0.01%)-[OS_xpc_object dealloc] (5 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (4 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (4 samples, 0.01%)__CFXPCDictionaryApplier (9 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke (11 samples, 0.03%)SecXPCDictionarySetPolicies (10 samples, 0.03%)_CFXPCCreateXPCObjectFromCFObject (10 samples, 0.03%)-[__NSDictionaryM __apply:context:] (10 samples, 0.03%)SecXPCDictionaryCopyArrayOptional (6 samples, 0.02%)SecXPCDictionaryCopyArray (6 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (6 samples, 0.02%)der_decode_plist (6 samples, 0.02%)SecCertificateParse (9 samples, 0.02%)SecCertificateCreateWithXPCArrayAtIndex (10 samples, 0.03%)SecCertificateCreateWithBytes (10 samples, 0.03%)SecXPCDictionaryCopyChainOptional (11 samples, 0.03%)der_decode_date (4 samples, 0.01%)der_decode_plist (5 samples, 0.01%)der_decode_dictionary (5 samples, 0.01%)der_decode_plist (5 samples, 0.01%)__handle_trust_evaluate_xpc_block_invoke_2 (23 samples, 0.06%)SecXPCDictionaryCopyDictionaryOptional (6 samples, 0.02%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (6 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (6 samples, 0.02%)_xpc_connection_pack_message (5 samples, 0.01%)_xpc_serializer_pack (5 samples, 0.01%)_dispatch_mach_send_msg (5 samples, 0.01%)_dispatch_mach_send_drain (5 samples, 0.01%)_dispatch_mach_msg_send (4 samples, 0.01%)mach_msg2_internal (4 samples, 0.01%)mach_msg2_trap (4 samples, 0.01%)security_fw_send_message_with_reply_sync_inner (11 samples, 0.03%)xpc_connection_send_message_with_reply_sync (11 samples, 0.03%)dispatch_mach_send_with_result_and_wait_for_reply (6 samples, 0.02%)_dispatch_mach_send_and_wait_for_reply (6 samples, 0.02%)__SecTrustEvaluateIfNecessary_block_invoke_2 (56 samples, 0.15%)SecOSStatusWith (56 samples, 0.15%)__SecTrustEvaluateIfNecessary_block_invoke_3 (56 samples, 0.15%)securityd_send_sync_and_do (56 samples, 0.15%)securityd_message_with_reply_sync (4 samples, 0.01%)securityd_message_is_for_system_keychain (4 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (4 samples, 0.01%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (4 samples, 0.01%)SecError (4 samples, 0.01%)SecCFCreateErrorWithFormatAndArguments (4 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (690 samples, 1.85%)<..native_tls::imp::MidHandshakeTlsStream<S>::handshake (690 samples, 1.85%)n..security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (690 samples, 1.85%)s..security_framework::trust::SecTrust::evaluate_with_error (59 samples, 0.16%)SecTrustEvaluateInternal (59 samples, 0.16%)SecTrustEvaluateIfNecessary (59 samples, 0.16%)_dispatch_lane_barrier_sync_invoke_and_complete (58 samples, 0.16%)_dispatch_client_callout (58 samples, 0.16%)__SecTrustEvaluateIfNecessary_block_invoke (57 samples, 0.15%)_os_activity_initiate_impl (57 samples, 0.15%)SSLCreateContext (5 samples, 0.01%)SSLCreateContextWithRecordFuncsAndPath (4 samples, 0.01%)security_framework::secure_transport::ClientBuilder::configure_ciphers (6 samples, 0.02%)SSLHandshakeProceed (4 samples, 0.01%)SSLRecordServiceWriteQueueInternal (4 samples, 0.01%)security_framework::secure_transport::write_func (4 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_write (4 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (4 samples, 0.01%)__sendto (4 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (792 samples, 2.13%)<..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (791 samples, 2.12%)<..<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (791 samples, 2.12%)<..reqwest::connect::with_timeout::_{{closure}} (790 samples, 2.12%)r..reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (789 samples, 2.12%)r..<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (788 samples, 2.12%)<..<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (19 samples, 0.05%)native_tls::imp::TlsConnector::connect (19 samples, 0.05%)security_framework::secure_transport::ClientBuilder::handshake (19 samples, 0.05%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (8 samples, 0.02%)SSLHandshake (8 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (796 samples, 2.14%)<..hyper_util::client::legacy::client::Client<C,B>::connect_to::_{{closure}}::_{{closure}}::_{{closure}} (4 samples, 0.01%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (4 samples, 0.01%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (4 samples, 0.01%)<reqwest::dns::gai::GaiResolver as reqwest::dns::resolve::Resolve>::resolve::_{{closure}} (4 samples, 0.01%)tokio::runtime::blocking::pool::spawn_blocking (4 samples, 0.01%)tokio::runtime::blocking::pool::Spawner::spawn_task (4 samples, 0.01%)<hyper_util::common::lazy::Lazy<F,R> as core::future::future::Future>::poll (5 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (5 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (5 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (5 samples, 0.01%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (5 samples, 0.01%)reqwest::connect::with_timeout::_{{closure}} (5 samples, 0.01%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (5 samples, 0.01%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (807 samples, 2.17%)<..<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (807 samples, 2.17%)<..hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (806 samples, 2.16%)h..<core::pin::Pin<P> as core::future::future::Future>::poll (15 samples, 0.04%)socket2::socket::Socket::connect (13 samples, 0.03%)__connect (13 samples, 0.03%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (18 samples, 0.05%)SSLRecordServiceWriteQueueInternal (4 samples, 0.01%)security_framework::secure_transport::write_func (4 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_write (4 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (4 samples, 0.01%)__sendto (4 samples, 0.01%)ccn_mulmod_p256 (5 samples, 0.01%)ccec_mult_XYCZaddC_ws (7 samples, 0.02%)ccn_mulmod_p256 (4 samples, 0.01%)ccecdh_compute_shared_secret (14 samples, 0.04%)ccecdh_compute_shared_secret_ws (14 samples, 0.04%)ccec_mult_blinded_ws (14 samples, 0.04%)ccec_mult_default_ws (14 samples, 0.04%)ccec_mult_XYCZadd_ws (7 samples, 0.02%)ccec_mult_XYCZaddC_ws (5 samples, 0.01%)ccec_generate_key_internal_fips_ws (11 samples, 0.03%)ccec_make_pub_from_priv_ws (11 samples, 0.03%)ccec_mult_blinded_ws (10 samples, 0.03%)ccec_mult_default_ws (10 samples, 0.03%)ccec_mult_XYCZaddC_ws (8 samples, 0.02%)ccec_mult_blinded_ws (14 samples, 0.04%)ccec_mult_default_ws (14 samples, 0.04%)ccec_sign_composite_msg_ws (17 samples, 0.05%)ccec_sign_composite_ws (17 samples, 0.05%)ccec_sign_internal_ws (17 samples, 0.05%)ccec_sign_internal_inner_ws (17 samples, 0.05%)ccec_add_normalized_ws (4 samples, 0.01%)ccec_full_add_normalized_ws (5 samples, 0.01%)tls_handshake_continue (53 samples, 0.14%)SSLAdvanceHandshake (53 samples, 0.14%)SSLPrepareAndQueueMessage (53 samples, 0.14%)SSLEncodeKeyExchange (52 samples, 0.14%)sslEcdhCreateKey (38 samples, 0.10%)ccec_generate_key (38 samples, 0.10%)ccec_generate_key_fips_ws (38 samples, 0.10%)ccec_pairwise_consistency_check_ws (27 samples, 0.07%)ccec_verify_composite_msg_ws (10 samples, 0.03%)ccec_verify_composite_digest_ws (10 samples, 0.03%)ccec_verify_internal_with_base_ws (10 samples, 0.03%)ccec_twin_mult_ws (9 samples, 0.02%)SSLAdvanceHandshake (4 samples, 0.01%)tls_metric_client_finished (4 samples, 0.01%)ccec_double_ws (6 samples, 0.02%)SSLProcessHandshakeMessage (10 samples, 0.03%)SSLProcessServerKeyExchange (10 samples, 0.03%)SSLVerifySignedServerKeyExchangeTls12 (10 samples, 0.03%)sslRawVerify (10 samples, 0.03%)ccec_verify (10 samples, 0.03%)ccec_verify_digest_ws (10 samples, 0.03%)ccec_verify_internal_with_base_ws (10 samples, 0.03%)ccec_twin_mult_ws (10 samples, 0.03%)SecECKeyGetNamedCurve (4 samples, 0.01%)SecKeyCopyAttributes (4 samples, 0.01%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (4 samples, 0.01%)SecTrustCopyPublicKey (10 samples, 0.03%)SecCertificateCopyPublicKey$LEGACYMAC (10 samples, 0.03%)Security::KeychainCore::Certificate::publicKey() (9 samples, 0.02%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (9 samples, 0.02%)SecCertificateParse (4 samples, 0.01%)tls_handshake_message_callback (22 samples, 0.06%)tls_helper_set_peer_pubkey (22 samples, 0.06%)tls_helper_create_cfarray_from_certificates (7 samples, 0.02%)SecCertificateCreateWithData (6 samples, 0.02%)SecPolicyCreateSSL_internal (4 samples, 0.01%)SSLHandshake (104 samples, 0.28%)SSLHandshakeProceed (104 samples, 0.28%)tls_handshake_process (44 samples, 0.12%)SSLProcessHandshakeRecordInner (44 samples, 0.12%)tls_verify_peer_cert (7 samples, 0.02%)sslCreateSecTrust (7 samples, 0.02%)tls_helper_create_peer_trust (7 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke (4 samples, 0.01%)SecXPCDictionarySetPolicies (4 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (4 samples, 0.01%)-[__NSDictionaryM __apply:context:] (4 samples, 0.01%)__CFXPCDictionaryApplier (4 samples, 0.01%)__handle_trust_evaluate_xpc_block_invoke_2 (5 samples, 0.01%)security_fw_send_message_with_reply_sync_inner (4 samples, 0.01%)xpc_connection_send_message_with_reply_sync (4 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (120 samples, 0.32%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (120 samples, 0.32%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (120 samples, 0.32%)security_framework::trust::SecTrust::evaluate_with_error (16 samples, 0.04%)SecTrustEvaluateInternal (16 samples, 0.04%)SecTrustEvaluateIfNecessary (16 samples, 0.04%)_dispatch_lane_barrier_sync_invoke_and_complete (16 samples, 0.04%)_dispatch_client_callout (16 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke (16 samples, 0.04%)_os_activity_initiate_impl (16 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_2 (16 samples, 0.04%)SecOSStatusWith (16 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_3 (16 samples, 0.04%)securityd_send_sync_and_do (16 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (140 samples, 0.38%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (140 samples, 0.38%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (140 samples, 0.38%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (140 samples, 0.38%)reqwest::connect::with_timeout::_{{closure}} (140 samples, 0.38%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (140 samples, 0.38%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (140 samples, 0.38%)<tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (141 samples, 0.38%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (141 samples, 0.38%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (141 samples, 0.38%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (141 samples, 0.38%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (960 samples, 2.58%)<r..url::ParseOptions::parse (5 samples, 0.01%)url::parser::Parser::parse_url (5 samples, 0.01%)url::parser::Parser::after_double_slash (4 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (4 samples, 0.01%)_CFRelease (4 samples, 0.01%)__SCDynamicStoreDeallocate (4 samples, 0.01%)mach_port_deallocate (4 samples, 0.01%)_kernelrpc_mach_port_deallocate_trap (4 samples, 0.01%)CFPropertyListCreateWithData (6 samples, 0.02%)_CFPropertyListCreateWithData (6 samples, 0.02%)__CFTryParseBinaryPlist (6 samples, 0.02%)__CFBinaryPlistCreateObjectFiltered (5 samples, 0.01%)__CFBinaryPlistCreateObjectFiltered (5 samples, 0.01%)_SCUnserialize (8 samples, 0.02%)__SCDynamicStoreCopyValueCommon (18 samples, 0.05%)configget (9 samples, 0.02%)mach_msg (8 samples, 0.02%)mach_msg_overwrite (8 samples, 0.02%)mach_msg2_internal (8 samples, 0.02%)mach_msg2_trap (8 samples, 0.02%)system_configuration::dynamic_store::SCDynamicStore::get_proxies (31 samples, 0.08%)SCDynamicStoreCopyProxiesWithOptions (31 samples, 0.08%)__SCNetworkProxiesCopyNormalized (5 samples, 0.01%)__CFBinaryPlistWriteOrPresize (9 samples, 0.02%)CFPropertyListWrite (10 samples, 0.03%)_SCSerialize (11 samples, 0.03%)CFPropertyListCreateData (11 samples, 0.03%)mach_msg (8 samples, 0.02%)mach_msg_overwrite (8 samples, 0.02%)mach_msg2_internal (8 samples, 0.02%)mach_msg2_trap (8 samples, 0.02%)__SCDynamicStoreAddSession (21 samples, 0.06%)configopen (9 samples, 0.02%)torii_common::token_uri::fetch_http_with_retry::_{{closure}} (1,042 samples, 2.80%)to..reqwest::async_impl::client::ClientBuilder::build (69 samples, 0.19%)hyper_util::client::proxy::matcher::Matcher::from_system (63 samples, 0.17%)hyper_util::client::proxy::matcher::mac::with_system (61 samples, 0.16%)system_configuration::dynamic_store::SCDynamicStoreBuilder<T>::build (26 samples, 0.07%)system_configuration::dynamic_store::SCDynamicStore::create (24 samples, 0.06%)SCDynamicStoreCreateWithOptions (24 samples, 0.06%)torii_common::token_uri::resolve_data_uri (10 samples, 0.03%)base64::engine::Engine::decode::inner (5 samples, 0.01%)<base64::engine::general_purpose::GeneralPurpose as base64::engine::Engine>::internal_decode (5 samples, 0.01%)torii_common::token_uri::TokenUriService::run::_{{closure}}::_{{closure}} (2,008 samples, 5.39%)torii_c..torii_common::token_uri::resolve_metadata::_{{closure}} (1,131 samples, 3.04%)tor..torii_common::token_uri::sanitize_json_string (71 samples, 0.19%)<alloc::string::String as core::iter::traits::collect::FromIterator<char>>::from_iter (28 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.01%)alloc::raw_vec::finish_grow (4 samples, 0.01%)_realloc (4 samples, 0.01%)_malloc_zone_realloc (4 samples, 0.01%)xzm_realloc (4 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (10 samples, 0.03%)core::hash::BuildHasher::hash_one (5 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::remove (4 samples, 0.01%)tokio::runtime::task::harness::Harness<T,S>::drop_join_handle_slow (6 samples, 0.02%)tokio::runtime::task::state::State::transition_to_join_handle_dropped (6 samples, 0.02%)_platform_memmove (15 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (4 samples, 0.01%)pthread_cond_signal (4 samples, 0.01%)__psynch_cvsignal (4 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_option_task_without_yield (6 samples, 0.02%)tokio::runtime::context::with_scheduler (6 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.01%)__rustc::__rdl_alloc (6 samples, 0.02%)_posix_memalign (6 samples, 0.02%)_malloc_zone_memalign (6 samples, 0.02%)<deduplicated_symbol> (24,946 samples, 66.99%)<deduplicated_symbol>torii_common::token_uri::TokenUriService::run::_{{closure}} (53 samples, 0.14%)tokio::task::spawn::spawn (30 samples, 0.08%)tokio::runtime::scheduler::multi_thread::handle::Handle::bind_new_task (15 samples, 0.04%)tokio::runtime::task::core::Cell<T,S>::new (9 samples, 0.02%)hyper::body::incoming::Incoming::new_channel (4 samples, 0.01%)<deduplicated_symbol> (5 samples, 0.01%)hyper::body::incoming::Sender::poll_ready (12 samples, 0.03%)atomic_waker::AtomicWaker::register (7 samples, 0.02%)<deduplicated_symbol> (5 samples, 0.01%)_xzm_xzone_malloc_tiny (13 samples, 0.03%)hyper::body::incoming::Sender::try_send_data (35 samples, 0.09%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (33 samples, 0.09%)tokio::runtime::task::waker::wake_by_val (5 samples, 0.01%)hyper::client::dispatch::Receiver<T,U>::poll_recv (6 samples, 0.02%)<deduplicated_symbol> (7 samples, 0.02%)SSLRead (7 samples, 0.02%)SSLRecordReadInternal (7 samples, 0.02%)security_framework::secure_transport::read_func (7 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (7 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_read (7 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (7 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (7 samples, 0.02%)__recvfrom (7 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify (8 samples, 0.02%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (8 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (8 samples, 0.02%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (8 samples, 0.02%)_xzm_xzone_malloc_tiny (4 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (7 samples, 0.02%)_xzm_xzone_free_freelist (4 samples, 0.01%)SSLRecordFreeInternal (12 samples, 0.03%)_xzm_xzone_malloc_small_freelist (5 samples, 0.01%)_xzm_xzone_malloc_tiny (5 samples, 0.01%)__recvfrom (1,080 samples, 2.90%)__..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,085 samples, 2.91%)<&..<&std::net::tcp::TcpStream as std::io::Read>::read (1,084 samples, 2.91%)<&..security_framework::secure_transport::read_func (1,107 samples, 2.97%)sec..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (1,103 samples, 2.96%)<hy..tokio::io::poll_evented::PollEvented<E>::poll_read (1,101 samples, 2.96%)tok..tokio::runtime::io::registration::Registration::poll_ready (9 samples, 0.02%)cc_cmp_safe_internal (11 samples, 0.03%)timingsafe_enable_if_supported (10 samples, 0.03%)ccmode_gcm_finalize (16 samples, 0.04%)timingsafe_enable_if_supported (4 samples, 0.01%)ccgcm_finalize (22 samples, 0.06%)timingsafe_enable_if_supported (6 samples, 0.02%)ccgcm_inc_iv (13 samples, 0.03%)timingsafe_restore_if_supported (4 samples, 0.01%)timingsafe_enable_if_supported (8 samples, 0.02%)ccgcm_reset (12 samples, 0.03%)AccelerateCrypto_ecb_AES_encrypt (4 samples, 0.01%)Decrypt_Main_Loop (172 samples, 0.46%)ccaes_vng_gcm_decrypt (179 samples, 0.48%)timingsafe_enable_if_supported (7 samples, 0.02%)ccgcm_update (190 samples, 0.51%)timingsafe_restore_if_supported (4 samples, 0.01%)SSLDecryptRecord (240 samples, 0.64%)CCSymmAEADDecrypt (238 samples, 0.64%)_platform_memmove (68 samples, 0.18%)timingsafe_enable_if_supported (10 samples, 0.03%)ccgcm_gmac (15 samples, 0.04%)ccmode_gcm_init (14 samples, 0.04%)gcm_init (10 samples, 0.03%)timingsafe_enable_if_supported (20 samples, 0.05%)tls_record_decrypt (387 samples, 1.04%)ccgcm_init_with_iv (60 samples, 0.16%)timingsafe_restore_if_supported (20 samples, 0.05%)SSLRecordReadInternal (1,511 samples, 4.06%)SSLR.._platform_memmove (41 samples, 0.11%)<deduplicated_symbol> (1,576 samples, 4.23%)<dedu..SSLRead (1,570 samples, 4.22%)SSLRe..__bzero (24 samples, 0.06%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1,712 samples, 4.60%)<hype..<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (1,712 samples, 4.60%)<toki.._platform_memset (78 samples, 0.21%)_xzm_reclaim_mark_used_locked (5 samples, 0.01%)mach_vm_reclaim_try_cancel (4 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (18 samples, 0.05%)_xzm_xzone_find_and_malloc_from_freelist_chunk (16 samples, 0.04%)xzm_chunk_mark_used (12 samples, 0.03%)_xzm_reclaim_mark_used (11 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting (6 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (4 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (1,770 samples, 4.75%)hyper:..hyper::proto::h1::decode::Decoder::decode (1,757 samples, 4.72%)hyper..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (1,753 samples, 4.71%)<hype..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1,744 samples, 4.68%)hyper..bytes::bytes_mut::BytesMut::reserve_inner (30 samples, 0.08%)_xzm_xzone_malloc_small_freelist (9 samples, 0.02%)http::header::name::HeaderName::from_bytes (6 samples, 0.02%)httparse::Response::parse_with_config_and_uninit_headers (4 samples, 0.01%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (16 samples, 0.04%)security_framework::secure_transport::read_func (29 samples, 0.08%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (29 samples, 0.08%)tokio::io::poll_evented::PollEvented<E>::poll_read (29 samples, 0.08%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (29 samples, 0.08%)<&std::net::tcp::TcpStream as std::io::Read>::read (29 samples, 0.08%)__recvfrom (29 samples, 0.08%)SSLDecryptRecord (7 samples, 0.02%)CCSymmAEADDecrypt (7 samples, 0.02%)<deduplicated_symbol> (41 samples, 0.11%)SSLRead (40 samples, 0.11%)SSLRecordReadInternal (40 samples, 0.11%)tls_record_decrypt (10 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (46 samples, 0.12%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (46 samples, 0.12%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (65 samples, 0.17%)hyper::proto::h1::io::Buffered<T,B>::parse (64 samples, 0.17%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (47 samples, 0.13%)security_framework::secure_transport::read_func (5 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (4 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_read (4 samples, 0.01%)SSLRecordReadInternal (7 samples, 0.02%)<deduplicated_symbol> (10 samples, 0.03%)SSLRead (8 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_keep_alive (13 samples, 0.03%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (12 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (12 samples, 0.03%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (12 samples, 0.03%)hyper::proto::h1::conn::Conn<I,B,T>::write_head (9 samples, 0.02%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::encode (8 samples, 0.02%)SSLRecordServiceWriteQueueInternal (72 samples, 0.19%)security_framework::secure_transport::write_func (72 samples, 0.19%)tokio::io::poll_evented::PollEvented<E>::poll_write (72 samples, 0.19%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (71 samples, 0.19%)<&std::net::tcp::TcpStream as std::io::Write>::write (71 samples, 0.19%)__sendto (70 samples, 0.19%)CCSymmAEADEncrypt (5 samples, 0.01%)ccgcm_update (5 samples, 0.01%)ccaes_vng_gcm_encrypt (5 samples, 0.01%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (83 samples, 0.22%)tokio_native_tls::TlsStream<S>::with_context (83 samples, 0.22%)SSLWrite (81 samples, 0.22%)SSLRecordWriteInternal (7 samples, 0.02%)tls_record_encrypt (7 samples, 0.02%)hyper::proto::h1::io::Buffered<T,B>::poll_flush (90 samples, 0.24%)tokio_native_tls::TlsStream<S>::with_context (6 samples, 0.02%)hyper::proto::h1::io::WriteBuf<B>::can_buffer (7 samples, 0.02%)<alloc::collections::vec_deque::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold (4 samples, 0.01%)SSLRecordServiceWriteQueueInternal (22 samples, 0.06%)security_framework::secure_transport::write_func (22 samples, 0.06%)tokio::io::poll_evented::PollEvented<E>::poll_write (22 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (22 samples, 0.06%)<&std::net::tcp::TcpStream as std::io::Write>::write (22 samples, 0.06%)__sendto (22 samples, 0.06%)hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (2,054 samples, 5.52%)hyper::..tokio_native_tls::TlsStream<S>::with_context (24 samples, 0.06%)SSLClose (24 samples, 0.06%)<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (2,057 samples, 5.52%)<hyper:.._CFRelease (6 samples, 0.02%)SecCertificateDestroy (6 samples, 0.02%)-[__NSArrayM dealloc] (8 samples, 0.02%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (8 samples, 0.02%)-[__NSSingleObjectArrayI dealloc] (4 samples, 0.01%)_CFRelease (4 samples, 0.01%)SecTrustDestroy (15 samples, 0.04%)_CFRelease (16 samples, 0.04%)_CFRelease (18 samples, 0.05%)SSLContextDestroy (18 samples, 0.05%)close (10 samples, 0.03%)core::ptr::drop_in_place<futures_util::future::try_future::into_future::IntoFuture<hyper::client::conn::http1::upgrades::UpgradeableConnection<reqwest::connect::sealed::Conn,reqwest::async_impl::body::Body>>> (31 samples, 0.08%)core::ptr::drop_in_place<hyper_util::rt::tokio::TokioIo<tokio_native_tls::TlsStream<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (31 samples, 0.08%)core::ptr::drop_in_place<security_framework::secure_transport::Connection<tokio_native_tls::AllowStd<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (12 samples, 0.03%)<tokio::io::poll_evented::PollEvented<E> as core::ops::drop::Drop>::drop (12 samples, 0.03%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (2,092 samples, 5.62%)<future..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2,090 samples, 5.61%)<future..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (5 samples, 0.01%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (5 samples, 0.01%)tokio::runtime::task::harness::Harness<T,S>::complete (8 samples, 0.02%)tokio::runtime::task::state::State::transition_to_idle (4 samples, 0.01%)tokio::runtime::task::harness::Harness<T,S>::poll (27,077 samples, 72.71%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::state::State::transition_to_running (4 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task (27,132 samples, 72.86%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (28,059 samples, 75.35%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (27,685 samples, 74.35%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (27,685 samples, 74.35%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (27,685 samples, 74.35%)tokio::runtime::context::scoped::Scoped<T>::settokio::runtime::scheduler::multi_thread::worker::Context::run (27,685 samples, 74.35%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (4 samples, 0.01%)tokio::runtime::task::core::Core<T,S>::poll (28,062 samples, 75.36%)tokio::runtime::task::core::Core<T,S>::pollall (37,238 samples, 100%)thread_start (29,145 samples, 78.27%)thread_start_pthread_start (29,145 samples, 78.27%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (29,144 samples, 78.26%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (29,144 samples, 78.26%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (29,144 samples, 78.26%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (28,066 samples, 75.37%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (28,064 samples, 75.36%)tokio::runtime::task::harness::Harness<T,S>::poll \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-3.svg b/bins/torii-tokens/flamegraph-3.svg new file mode 100644 index 0000000..7305406 --- /dev/null +++ b/bins/torii-tokens/flamegraph-3.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch qos_class_main (1,523 samples, 0.08%)start_wqthread (1,523 samples, 0.08%)_pthread_mutex_firstfit_unlock_slow (216 samples, 0.01%)_pthread_mutex_firstfit_wake (215 samples, 0.01%)__psynch_mutexdrop (214 samples, 0.01%)_pthread_mutex_firstfit_unlock_slow (276 samples, 0.01%)_pthread_mutex_firstfit_wake (276 samples, 0.01%)__psynch_mutexdrop (274 samples, 0.01%)sqlite3ValueFree (791 samples, 0.04%)vdbeMemClear (583 samples, 0.03%)sqlite3DbFreeNN (271 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1,054 samples, 0.06%)core::ptr::drop_in_place<sqlx_sqlite::row::SqliteRow> (1,209 samples, 0.06%)sqlx_sqlite::any::_<impl core::convert::TryFrom<&sqlx_sqlite::row::SqliteRow> for sqlx_core::any::row::AnyRow>::try_from (333 samples, 0.02%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (1,627 samples, 0.09%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1,683 samples, 0.09%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1,677 samples, 0.09%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (1,730 samples, 0.09%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1,721 samples, 0.09%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (1,745 samples, 0.09%)hashbrown::map::HashMap<K,V,S,A>::insert (207 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (749 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (748 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (727 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (377 samples, 0.02%)torii_tokens::run_indexer::_{{closure}} (3,046 samples, 0.16%)tokio::runtime::park::CachedParkThread::block_on (3,099 samples, 0.16%)start (3,105 samples, 0.16%)main (3,100 samples, 0.16%)std::rt::lang_start_internal (3,100 samples, 0.16%)std::rt::lang_start::_{{closure}} (3,100 samples, 0.16%)std::sys::backtrace::__rust_begin_short_backtrace (3,100 samples, 0.16%)torii_tokens::main (3,100 samples, 0.16%)_Block_release (198 samples, 0.01%)_dispatch_client_callout (280 samples, 0.01%)<deduplicated_symbol> (353 samples, 0.02%)_dispatch_root_queue_poke_slow (353 samples, 0.02%)_pthread_workqueue_addthreads (345 samples, 0.02%)__workq_kernreturn (340 samples, 0.02%)_dispatch_root_queue_drain (868 samples, 0.05%)_dispatch_worker_thread2 (947 samples, 0.05%)start_wqthread (960 samples, 0.05%)_pthread_wqthread (958 samples, 0.05%)_dispatch_semaphore_wait_slow (343 samples, 0.02%)_dispatch_sema4_wait (319 samples, 0.02%)semaphore_wait_trap (303 samples, 0.02%)<flume::IntoIter<T> as core::iter::traits::iterator::Iterator>::next (532 samples, 0.03%)std::thread::park (362 samples, 0.02%)_pthread_mutex_firstfit_lock_slow (306 samples, 0.02%)_pthread_mutex_firstfit_lock_wait (284 samples, 0.01%)__psynch_mutexwait (270 samples, 0.01%)sqlite3Malloc (603 samples, 0.03%)sqlite3Malloc (341 samples, 0.02%)sqlite3VdbeMemMakeWriteable (485 samples, 0.03%)vdbeMemAddTerminator (474 samples, 0.02%)sqlite3VdbeMemGrow (466 samples, 0.02%)sqlx_sqlite::row::SqliteRow::current (1,234 samples, 0.06%)sqlite3_value_dup (1,108 samples, 0.06%)sqlite3PagerSharedLock (329 samples, 0.02%)walTryBeginRead (200 samples, 0.01%)btreeBeginTrans (566 samples, 0.03%)btreeLast (238 samples, 0.01%)unixRead (1,393 samples, 0.07%)pread (1,391 samples, 0.07%)getAndInitPage (1,444 samples, 0.08%)getPageNormal (1,440 samples, 0.08%)readDbPage (1,402 samples, 0.07%)sqlite3BtreeIndexMoveto (1,563 samples, 0.08%)getAndInitPage (191 samples, 0.01%)getPageNormal (191 samples, 0.01%)balance (228 samples, 0.01%)sqlite3BtreeInsert (266 samples, 0.01%)fsync (815 samples, 0.04%)unixSync (823 samples, 0.04%)unixWrite (927 samples, 0.05%)pwrite (924 samples, 0.05%)pagerWalFrames (1,837 samples, 0.10%)walWriteOneFrame (988 samples, 0.05%)sqlite3BtreeCommitPhaseOne (1,872 samples, 0.10%)sqlite3PagerCommitPhaseOne (1,871 samples, 0.10%)sqlite3VdbeHalt (2,083 samples, 0.11%)vdbeCommit (2,021 samples, 0.11%)sqlite3VdbeExec (5,215 samples, 0.27%)sqlite3WalDefaultHook (805 samples, 0.04%)sqlite3_wal_checkpoint_v2 (805 samples, 0.04%)sqlite3BtreeCheckpoint (804 samples, 0.04%)sqlite3WalCheckpoint (804 samples, 0.04%)unixWrite (550 samples, 0.03%)pwrite (550 samples, 0.03%)sqlx_sqlite::statement::handle::StatementHandle::step (6,043 samples, 0.32%)sqlite3_step (6,039 samples, 0.32%)<sqlx_sqlite::connection::execute::ExecuteIter as core::iter::traits::iterator::Iterator>::next (7,329 samples, 0.39%)<flume::async::AsyncSignal as flume::signal::Signal>::fire (220 samples, 0.01%)flume::Sender<T>::send (269 samples, 0.01%)__psynch_cvwait (681 samples, 0.04%)_pthread_cond_wait (870 samples, 0.05%)parking_lot::condvar::Condvar::wait_until_internal (927 samples, 0.05%)-[OS_xpc_object dealloc] (288 samples, 0.02%)_xpc_dictionary_node_free (338 samples, 0.02%)_xpc_dictionary_dispose (421 samples, 0.02%)-[OS_xpc_object dealloc] (456 samples, 0.02%)-[NWConcrete_nw_resolver_config .cxx_destruct] (492 samples, 0.03%)_objc_rootDealloc (506 samples, 0.03%)objc_destructInstance_nonnull_realized(objc_object*) (505 samples, 0.03%)object_cxxDestructFromClass(objc_object*, objc_class*) (501 samples, 0.03%)-[NWConcrete_nw_resolver_config dealloc] (529 samples, 0.03%)UnsafeMutablePointer.deinitialize(count:) (723 samples, 0.04%)swift_arrayDestroy (721 samples, 0.04%)0x247521778 (729 samples, 0.04%)0x2475216d4 (735 samples, 0.04%)0x24752183c (749 samples, 0.04%)_swift_release_dealloc (856 samples, 0.05%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (878 samples, 0.05%)0x1960b771c (936 samples, 0.05%)swift_cvw_destroyImpl(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) (930 samples, 0.05%)_objc_rootDealloc (964 samples, 0.05%)objc_destructInstance_nonnull_realized(objc_object*) (963 samples, 0.05%)object_cxxDestructFromClass(objc_object*, objc_class*) (961 samples, 0.05%)0x1963726ac (961 samples, 0.05%)0x1963725ec (1,020 samples, 0.05%)0x196372684 (1,024 samples, 0.05%)-[NWConcrete_nw_path_evaluator .cxx_destruct] (1,045 samples, 0.05%)objc_destructInstance_nonnull_realized(objc_object*) (1,250 samples, 0.07%)object_cxxDestructFromClass(objc_object*, objc_class*) (1,245 samples, 0.07%)_objc_rootDealloc (1,259 samples, 0.07%)necp_client_action (729 samples, 0.04%)-[NWConcrete_nw_path_evaluator dealloc] (2,111 samples, 0.11%)0x195fee974 (237 samples, 0.01%)_nw_parameters_createTm (489 samples, 0.03%)nw_path_create_evaluator_for_endpoint_no_evaluate (687 samples, 0.04%)0x1963737e8 (196 samples, 0.01%)necp_client_action (15,394 samples, 0.81%)nw_path_evaluator_add_endpoint_to_necp_message (586 samples, 0.03%)nw_path_struct_size_for_endpoint_and_metadata (381 samples, 0.02%)nw_path_create_necp_parameters (4,877 samples, 0.26%)0x195ffc69c (351 samples, 0.02%)0x19637d598 (398 samples, 0.02%)_nw_path_add_necp_result_netagent (469 samples, 0.02%)nw_path_copy_endpoint_from_tlv (362 samples, 0.02%)nw_endpoint_fillout_v4v6_address (219 samples, 0.01%)nw_path_parse_necp_result (1,362 samples, 0.07%)0x1960ac09c (274 samples, 0.01%)nw_path_copy_interface_with_generation (397 samples, 0.02%)0x1960ad2d4 (439 samples, 0.02%)_StringGuts.prepareForAppendInPlace(totalCount:otherUTF8Count:) (213 samples, 0.01%)_StringGuts.append(_:) (358 samples, 0.02%)0x1961f7350 (883 samples, 0.05%)_Block_release (248 samples, 0.01%)0x1961f5688 (271 samples, 0.01%)0x1960b3ed0 (312 samples, 0.02%)0x1960b7780 (329 samples, 0.02%)0x1960b783c (327 samples, 0.02%)0x1960b1134 (353 samples, 0.02%)nw_path_access_agent_cache (707 samples, 0.04%)-[OS_xpc_object dealloc] (226 samples, 0.01%)_xpc_dictionary_insert (242 samples, 0.01%)_xpc_plist_collapse_stack (777 samples, 0.04%)xpc_create_from_plist_with_string_cache (1,615 samples, 0.08%)nw_path_bridge_config_agent_dns_copy_resolver_config (1,781 samples, 0.09%)0x1960ada20 (5,319 samples, 0.28%)0x1960a695c (198 samples, 0.01%)0x1960a871c (340 samples, 0.02%)0x1960a7f90 (517 samples, 0.03%)0x1960af8b4 (1,029 samples, 0.05%)0x1961f6dac (224 samples, 0.01%)0x1960b0b10 (276 samples, 0.01%)0x1960b207c (331 samples, 0.02%)0x1960ad66c (7,436 samples, 0.39%)_nw_path_update_is_viableTm (7,452 samples, 0.39%)nw_path_snapshot_path(NWConcrete_nw_path*) (7,465 samples, 0.39%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (29,662 samples, 1.56%)nw_path_create_evaluator_for_endpoint (30,364 samples, 1.60%)nw_nat64_v4_address_requires_synthesis (32,804 samples, 1.72%)_gai_nat64_second_pass (32,832 samples, 1.73%)__sendto_nocancel (312 samples, 0.02%)_isort (696 samples, 0.04%)si_destination_compare (669 samples, 0.04%)si_destination_lookup (539 samples, 0.03%)si_destination_fill_netsrc (341 samples, 0.02%)_gai_sort_list (716 samples, 0.04%)_xpc_dictionary_node_free (193 samples, 0.01%)_xpc_dictionary_dispose (248 samples, 0.01%)-[OS_xpc_object dealloc] (268 samples, 0.01%)-[NWConcrete_nw_resolver_config .cxx_destruct] (291 samples, 0.02%)_objc_rootDealloc (299 samples, 0.02%)objc_destructInstance_nonnull_realized(objc_object*) (299 samples, 0.02%)object_cxxDestructFromClass(objc_object*, objc_class*) (297 samples, 0.02%)-[NWConcrete_nw_resolver_config dealloc] (316 samples, 0.02%)UnsafeMutablePointer.deinitialize(count:) (452 samples, 0.02%)swift_arrayDestroy (449 samples, 0.02%)0x247521778 (456 samples, 0.02%)0x2475216d4 (461 samples, 0.02%)0x24752183c (475 samples, 0.02%)_swift_release_dealloc (544 samples, 0.03%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (555 samples, 0.03%)0x1960b771c (596 samples, 0.03%)swift_cvw_destroyImpl(swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) (594 samples, 0.03%)objc_destructInstance_nonnull_realized(objc_object*) (614 samples, 0.03%)object_cxxDestructFromClass(objc_object*, objc_class*) (612 samples, 0.03%)0x1963726ac (609 samples, 0.03%)_objc_rootDealloc (615 samples, 0.03%)0x1963725ec (644 samples, 0.03%)0x196372684 (650 samples, 0.03%)-[NWConcrete_nw_path_evaluator .cxx_destruct] (661 samples, 0.03%)objc_destructInstance_nonnull_realized(objc_object*) (673 samples, 0.04%)object_cxxDestructFromClass(objc_object*, objc_class*) (671 samples, 0.04%)_objc_rootDealloc (678 samples, 0.04%)necp_client_action (355 samples, 0.02%)-[NWConcrete_nw_path_evaluator dealloc] (1,105 samples, 0.06%)0x1961e5eac (193 samples, 0.01%)0x1961e7ea4 (491 samples, 0.03%)si_addrinfo (286 samples, 0.02%)si_addrinfo_list (225 samples, 0.01%)getaddrinfo (390 samples, 0.02%)nw_utilities_port_for_string (466 samples, 0.02%)0x1961e7d5c (961 samples, 0.05%)0x196019c4c (257 samples, 0.01%)0x1961eea5c (270 samples, 0.01%)0x1962ff5d0 (213 samples, 0.01%)bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) (210 samples, 0.01%)_swift_release_dealloc (210 samples, 0.01%)0x195ffa460 (208 samples, 0.01%)_objc_rootDealloc (217 samples, 0.01%)objc_destructInstance_nonnull_realized(objc_object*) (216 samples, 0.01%)object_cxxDestructFromClass(objc_object*, objc_class*) (216 samples, 0.01%)0x1962ff4c4 (225 samples, 0.01%)0x1962ff5a8 (229 samples, 0.01%)0x195fee974 (208 samples, 0.01%)0x195ff2268 (377 samples, 0.02%)0x196305ff0 (592 samples, 0.03%)_nw_parameters_create_legacy_tcp_socket (603 samples, 0.03%)0x195ff372c (370 samples, 0.02%)0x1962ff44c (378 samples, 0.02%)0x1962ff3e0 (420 samples, 0.02%)0x1960a42f8 (340 samples, 0.02%)0x196372770 (364 samples, 0.02%)0x196372704 (382 samples, 0.02%)_os_log_fmt_flatten_NSCF (1,071 samples, 0.06%)_NS_os_log_callback (1,060 samples, 0.06%)_os_log_fmt_flatten_object_impl (1,275 samples, 0.07%)_os_log_impl_flatten_and_send (1,622 samples, 0.09%)_os_log_impl (1,643 samples, 0.09%)_os_log (1,640 samples, 0.09%)nw_path_create_evaluator_for_endpoint_no_evaluate (348 samples, 0.02%)necp_client_action (10,050 samples, 0.53%)_nw_endpoint_get_device_idTm (243 samples, 0.01%)nw_path_evaluator_add_endpoint_to_necp_message (295 samples, 0.02%)nw_path_struct_size_for_endpoint_and_metadata (303 samples, 0.02%)nw_path_create_necp_parameters (3,425 samples, 0.18%)0x195ffc69c (220 samples, 0.01%)0x19637d598 (253 samples, 0.01%)_nw_path_add_necp_result_netagent (295 samples, 0.02%)nw_path_copy_endpoint_from_tlv (238 samples, 0.01%)nw_path_parse_necp_result (902 samples, 0.05%)nw_path_copy_interface_with_generation (277 samples, 0.01%)0x1960ad2d4 (299 samples, 0.02%)_StringGuts.append(_:) (198 samples, 0.01%)0x1961f7350 (546 samples, 0.03%)nw_path_access_agent_cache (269 samples, 0.01%)_xpc_plist_collapse_stack (343 samples, 0.02%)xpc_create_from_plist_with_string_cache (799 samples, 0.04%)nw_path_bridge_config_agent_dns_copy_resolver_config (923 samples, 0.05%)0x1960ada20 (2,770 samples, 0.15%)0x1960a871c (198 samples, 0.01%)0x1960a7f90 (243 samples, 0.01%)0x1960af8b4 (536 samples, 0.03%)0x1960b207c (212 samples, 0.01%)0x1960ad66c (4,031 samples, 0.21%)_nw_path_update_is_viableTm (4,042 samples, 0.21%)nw_path_snapshot_path(NWConcrete_nw_path*) (4,048 samples, 0.21%)nw_path_create_evaluator_for_endpoint (19,204 samples, 1.01%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (18,847 samples, 0.99%)nw_path_libinfo_path_check (24,259 samples, 1.28%)__select_nocancel (763 samples, 0.04%)_mdns_hostent_append_alias (232 samples, 0.01%)_mdns_query_callback (1,156 samples, 0.06%)kevent (618 samples, 0.03%)handle_query_response (1,208 samples, 0.06%)__recvfrom_nocancel (3,070 samples, 0.16%)read_all (3,097 samples, 0.16%)DNSServiceProcessResult (5,230 samples, 0.27%)__close_nocancel (519 samples, 0.03%)__sendto_nocancel (578 samples, 0.03%)DNSServiceRefDeallocate (653 samples, 0.03%)write_all (590 samples, 0.03%)_mdns_query_clear (685 samples, 0.04%)__close_nocancel (2,858 samples, 0.15%)__select_nocancel (1,640 samples, 0.09%)__sendmsg_nocancel (1,830 samples, 0.10%)__socketpair (1,185 samples, 0.06%)__recvfrom_nocancel (811 samples, 0.04%)read_all (853 samples, 0.04%)setsockopt (431 samples, 0.02%)__sendto_nocancel (1,415 samples, 0.07%)write_all (1,429 samples, 0.08%)deliver_request (10,365 samples, 0.54%)DNSServiceQueryRecordInternal (10,574 samples, 0.56%)_mdns_query_start (10,633 samples, 0.56%)_pthread_mutex_firstfit_lock_slow (372 samples, 0.02%)_pthread_mutex_firstfit_lock_wait (367 samples, 0.02%)__psynch_mutexwait (363 samples, 0.02%)_pthread_mutex_firstfit_unlock_slow (222 samples, 0.01%)_pthread_mutex_firstfit_wake (220 samples, 0.01%)__psynch_mutexdrop (217 samples, 0.01%)kevent (1,572 samples, 0.08%)kqueue (320 samples, 0.02%)_mdns_search_ex (19,867 samples, 1.04%)si_addrinfo_list (296 samples, 0.02%)si_addrinfo_list_from_hostent (417 samples, 0.02%)search_addrinfo (20,376 samples, 1.07%)mdns_addrinfo (20,365 samples, 1.07%)si_addrinfo (78,344 samples, 4.12%)si_a..getaddrinfo (78,533 samples, 4.13%)geta..<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (78,554 samples, 4.13%)<std..<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (78,736 samples, 4.14%)<(&st..mach_absolute_time (3,214 samples, 0.17%)clock_gettime_nsec_np (3,502 samples, 0.18%)std::sys::pal::unix::time::Timespec::now (3,688 samples, 0.19%)clock_gettime (3,596 samples, 0.19%)mach_absolute_time (972 samples, 0.05%)clock_gettime_nsec_np (1,063 samples, 0.06%)std::sys::pal::unix::time::Timespec::now (1,150 samples, 0.06%)clock_gettime (1,104 samples, 0.06%)std::time::Instant::elapsed (1,189 samples, 0.06%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (953 samples, 0.05%)__psynch_cvwait (9,657 samples, 0.51%)_pthread_cond_wait (10,061 samples, 0.53%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (11,132 samples, 0.59%)parking_lot::condvar::Condvar::wait_until_internal (10,565 samples, 0.56%)mach_absolute_time (1,240 samples, 0.07%)clock_gettime_nsec_np (1,563 samples, 0.08%)std::sys::pal::unix::time::Timespec::now (1,776 samples, 0.09%)clock_gettime (1,662 samples, 0.09%)mio::poll::Poll::poll (22,357 samples, 1.18%)kevent (22,140 samples, 1.16%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (505 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (324 samples, 0.02%)tokio::runtime::io::driver::Driver::turn (23,611 samples, 1.24%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (362 samples, 0.02%)tokio::runtime::time::Driver::park_internal (26,445 samples, 1.39%)tokio::runtime::scheduler::multi_thread::park::Parker::park (27,449 samples, 1.44%)mio::poll::Poll::poll (331 samples, 0.02%)kevent (331 samples, 0.02%)tokio::runtime::io::driver::Driver::turn (353 samples, 0.02%)tokio::runtime::time::Driver::park_internal (420 samples, 0.02%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (436 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (39,469 samples, 2.07%)t..<deduplicated_symbol> (1,712 samples, 0.09%)mio::waker::Waker::wake (1,621 samples, 0.09%)kevent (1,615 samples, 0.08%)__psynch_cvsignal (3,598 samples, 0.19%)pthread_cond_signal (3,624 samples, 0.19%)mach_absolute_time (410 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (420 samples, 0.02%)clock_gettime (417 samples, 0.02%)clock_gettime_nsec_np (414 samples, 0.02%)parking_lot::condvar::Condvar::notify_one_slow (4,109 samples, 0.22%)_platform_memmove (304 samples, 0.02%)core::ptr::drop_in_place<torii_common::token_uri::TokenUriService::run<torii_erc721::storage::Erc721Storage>::{{closure}}::{{closure}}> (452 samples, 0.02%)<deduplicated_symbol> (282 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (752 samples, 0.04%)core::hash::BuildHasher::hash_one (1,525 samples, 0.08%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1,339 samples, 0.07%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (698 samples, 0.04%)_malloc_zone_realloc (220 samples, 0.01%)xzm_realloc (196 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (309 samples, 0.02%)alloc::raw_vec::finish_grow (292 samples, 0.02%)_realloc (281 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (342 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (718 samples, 0.04%)core::fmt::write (661 samples, 0.03%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (588 samples, 0.03%)core::fmt::write (734 samples, 0.04%)core::fmt::write (1,102 samples, 0.06%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1,016 samples, 0.05%)alloc::fmt::format::format_inner (1,123 samples, 0.06%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (1,372 samples, 0.07%)_malloc_zone_realloc (194 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (283 samples, 0.01%)alloc::raw_vec::finish_grow (272 samples, 0.01%)_realloc (254 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (385 samples, 0.02%)_malloc_zone_realloc (486 samples, 0.03%)xzm_realloc (439 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (702 samples, 0.04%)alloc::raw_vec::finish_grow (668 samples, 0.04%)_realloc (630 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (871 samples, 0.05%)<alloc::string::String as core::fmt::Write>::write_str (257 samples, 0.01%)core::fmt::Formatter::pad_integral (270 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (240 samples, 0.01%)alloc::raw_vec::finish_grow (192 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (306 samples, 0.02%)_xzm_free (373 samples, 0.02%)_malloc_zone_realloc (1,287 samples, 0.07%)xzm_realloc (1,106 samples, 0.06%)xzm_malloc_zone_size (222 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1,815 samples, 0.10%)alloc::raw_vec::finish_grow (1,708 samples, 0.09%)_realloc (1,630 samples, 0.09%)<alloc::string::String as core::fmt::Write>::write_str (2,075 samples, 0.11%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (234 samples, 0.01%)alloc::raw_vec::finish_grow (225 samples, 0.01%)_realloc (220 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (303 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (4,337 samples, 0.23%)core::fmt::write (3,971 samples, 0.21%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (3,564 samples, 0.19%)core::fmt::Formatter::pad_integral (415 samples, 0.02%)core::fmt::write (4,491 samples, 0.24%)core::fmt::write (6,671 samples, 0.35%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (6,065 samples, 0.32%)alloc::fmt::format::format_inner (6,913 samples, 0.36%)core::hash::BuildHasher::hash_one (210 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (454 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (365 samples, 0.02%)clock_gettime (361 samples, 0.02%)gettimeofday (349 samples, 0.02%)__commpage_gettimeofday_internal (340 samples, 0.02%)mach_absolute_time (335 samples, 0.02%)chrono::offset::utc::Utc::now (382 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (10,357 samples, 0.54%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (8,687 samples, 0.46%)torii::etl::envelope::Envelope::new (442 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (252 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (205 samples, 0.01%)alloc::raw_vec::finish_grow (194 samples, 0.01%)_malloc_zone_realloc (356 samples, 0.02%)xzm_realloc (320 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (514 samples, 0.03%)alloc::raw_vec::finish_grow (478 samples, 0.03%)_realloc (454 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (586 samples, 0.03%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1,092 samples, 0.06%)core::fmt::write (998 samples, 0.05%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (901 samples, 0.05%)core::fmt::write (1,648 samples, 0.09%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1,494 samples, 0.08%)core::fmt::write (1,120 samples, 0.06%)alloc::fmt::format::format_inner (1,717 samples, 0.09%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (2,404 samples, 0.13%)torii::etl::envelope::Envelope::new (218 samples, 0.01%)_xzm_free (207 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (270 samples, 0.01%)alloc::raw_vec::finish_grow (242 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (19,976 samples, 1.05%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (13,800 samples, 0.73%)_free (384 samples, 0.02%)_malloc_zone_malloc (477 samples, 0.03%)_xzm_free (1,081 samples, 0.06%)_xzm_xzone_malloc (283 samples, 0.01%)core::hash::BuildHasher::hash_one (341 samples, 0.02%)core::ptr::drop_in_place<<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::{{closure}}> (212 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (26,656 samples, 1.40%)_xzm_free (305 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (652 samples, 0.03%)<deduplicated_symbol> (5,612 samples, 0.30%)mio::waker::Waker::wake (5,586 samples, 0.29%)kevent (5,568 samples, 0.29%)__psynch_cvsignal (3,137 samples, 0.16%)pthread_cond_signal (3,174 samples, 0.17%)mach_absolute_time (353 samples, 0.02%)clock_gettime_nsec_np (376 samples, 0.02%)parking_lot::condvar::Condvar::notify_one_slow (3,655 samples, 0.19%)std::sys::pal::unix::time::Timespec::now (395 samples, 0.02%)clock_gettime (385 samples, 0.02%)tokio::runtime::context::with_scheduler (9,551 samples, 0.50%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (9,584 samples, 0.50%)futures_channel::mpsc::Receiver<T>::next_message (10,549 samples, 0.55%)tokio::runtime::task::waker::wake_by_val (9,643 samples, 0.51%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (10,690 samples, 0.56%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (10,831 samples, 0.57%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (10,940 samples, 0.58%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (11,109 samples, 0.58%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (11,372 samples, 0.60%)_platform_memmove (5,831 samples, 0.31%)encoding_rs::Encoding::decode_without_bom_handling (4,502 samples, 0.24%)encoding_rs::utf_8::utf8_valid_up_to (4,501 samples, 0.24%)_platform_memmove (9,773 samples, 0.51%)_xzm_free (201 samples, 0.01%)_xzm_free_outlined (371 samples, 0.02%)bytes::bytes_mut::shared_v_drop (966 samples, 0.05%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (11,246 samples, 0.59%)http_body_util::collected::Collected<B>::to_bytes (11,268 samples, 0.59%)reqwest::async_impl::response::Response::text::_{{closure}} (33,172 samples, 1.74%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (220 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (192 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (605 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (692 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (199 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (199 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (630 samples, 0.03%)<deduplicated_symbol> (1,172 samples, 0.06%)DYLD-STUB$$malloc (266 samples, 0.01%)DYLD-STUB$$memcpy (471 samples, 0.02%)__rustc::__rdl_alloc (549 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (270 samples, 0.01%)_malloc_zone_malloc (1,600 samples, 0.08%)_platform_memmove (2,996 samples, 0.16%)_xzm_xzone_malloc (1,917 samples, 0.10%)_xzm_xzone_find_and_malloc_from_freelist_chunk (258 samples, 0.01%)xzm_chunk_mark_used (230 samples, 0.01%)_xzm_reclaim_mark_used (230 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (312 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11,383 samples, 0.60%)<deduplicated_symbol> (341 samples, 0.02%)__rustc::__rdl_alloc (207 samples, 0.01%)_malloc_zone_malloc (458 samples, 0.02%)_platform_memmove (232 samples, 0.01%)_xzm_free (261 samples, 0.01%)_xzm_xzone_malloc_tiny (219 samples, 0.01%)_malloc_zone_realloc (1,384 samples, 0.07%)xzm_realloc (1,268 samples, 0.07%)_realloc (1,624 samples, 0.09%)_xzm_xzone_malloc (477 samples, 0.03%)_xzm_reclaim_mark_used (410 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (257 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (232 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (515 samples, 0.03%)xzm_chunk_mark_used (417 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (650 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (4,529 samples, 0.24%)alloc::raw_vec::finish_grow (4,100 samples, 0.22%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19,391 samples, 1.02%)<deduplicated_symbol> (305 samples, 0.02%)_malloc_zone_malloc (459 samples, 0.02%)_platform_memmove (414 samples, 0.02%)_xzm_xzone_malloc (418 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (2,387 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (383 samples, 0.02%)<deduplicated_symbol> (313 samples, 0.02%)<deduplicated_symbol> (1,043 samples, 0.05%)DYLD-STUB$$malloc (195 samples, 0.01%)DYLD-STUB$$memcpy (393 samples, 0.02%)__rustc::__rdl_alloc (561 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (228 samples, 0.01%)_malloc_zone_malloc (1,542 samples, 0.08%)_platform_memmove (1,271 samples, 0.07%)_xzm_xzone_malloc (1,358 samples, 0.07%)_xzm_reclaim_mark_used (583 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting (386 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (352 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (635 samples, 0.03%)xzm_chunk_mark_used (591 samples, 0.03%)_xzm_xzone_thread_cache_fill_and_malloc (773 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8,618 samples, 0.45%)__rustc::__rdl_alloc (207 samples, 0.01%)_malloc_zone_malloc (458 samples, 0.02%)_platform_memmove (362 samples, 0.02%)_xzm_xzone_malloc (501 samples, 0.03%)_xzm_reclaim_mark_used (286 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (307 samples, 0.02%)xzm_chunk_mark_used (288 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (386 samples, 0.02%)<deduplicated_symbol> (364 samples, 0.02%)_malloc_zone_malloc (447 samples, 0.02%)_xzm_xzone_malloc (541 samples, 0.03%)_xzm_reclaim_mark_used (381 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (226 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (206 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (455 samples, 0.02%)xzm_chunk_mark_used (386 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (566 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (3,131 samples, 0.16%)alloc::raw_vec::finish_grow (2,710 samples, 0.14%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17,502 samples, 0.92%)<deduplicated_symbol> (722 samples, 0.04%)__rustc::__rdl_alloc (240 samples, 0.01%)_malloc_zone_malloc (929 samples, 0.05%)_platform_memmove (1,218 samples, 0.06%)_xzm_xzone_malloc (920 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (5,154 samples, 0.27%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (23,488 samples, 1.23%)DYLD-STUB$$memcmp (337 samples, 0.02%)_platform_memcmp (828 samples, 0.04%)<deduplicated_symbol> (365 samples, 0.02%)_malloc_zone_malloc (465 samples, 0.02%)_xzm_xzone_malloc (341 samples, 0.02%)_xzm_reclaim_mark_used_locked (766 samples, 0.04%)mach_vm_reclaim_try_cancel (760 samples, 0.04%)mach_absolute_time (720 samples, 0.04%)_xzm_reclaim_mark_used (2,237 samples, 0.12%)mach_vm_reclaim_update_kernel_accounting (1,453 samples, 0.08%)mach_vm_reclaim_update_kernel_accounting_trap (1,344 samples, 0.07%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2,350 samples, 0.12%)xzm_chunk_mark_used (2,266 samples, 0.12%)_xzm_xzone_malloc_freelist_outlined (2,925 samples, 0.15%)_xzm_xzone_malloc_tiny (1,353 samples, 0.07%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1,196 samples, 0.06%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (8,085 samples, 0.43%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (11,635 samples, 0.61%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (469 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (326 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (59,023 samples, 3.10%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (60,975 samples, 3.21%)<se..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (428 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (194 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (274 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (345 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (879 samples, 0.05%)_platform_memmove (244 samples, 0.01%)_malloc_zone_realloc (661 samples, 0.03%)xzm_realloc (625 samples, 0.03%)_realloc (744 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (877 samples, 0.05%)alloc::raw_vec::finish_grow (825 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (63,785 samples, 3.35%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (429 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (64,277 samples, 3.38%)<se..alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (280 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (739 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (65,905 samples, 3.46%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66,000 samples, 3.47%)<se..<deduplicated_symbol> (1,312 samples, 0.07%)DYLD-STUB$$malloc (250 samples, 0.01%)DYLD-STUB$$memcpy (491 samples, 0.03%)__rustc::__rdl_alloc (506 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (250 samples, 0.01%)_malloc_zone_malloc (1,813 samples, 0.10%)_platform_memmove (2,656 samples, 0.14%)_xzm_xzone_malloc (1,926 samples, 0.10%)_xzm_reclaim_mark_used (450 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (272 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (259 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (531 samples, 0.03%)xzm_chunk_mark_used (452 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (645 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11,196 samples, 0.59%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (209 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (573 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (618 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (201 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (401 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (309 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (380 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1,236 samples, 0.06%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,417 samples, 0.07%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1,537 samples, 0.08%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (235 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2,479 samples, 0.13%)_platform_memmove (1,027 samples, 0.05%)_xzm_free (342 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (238 samples, 0.01%)xzm_chunk_mark_used (214 samples, 0.01%)_xzm_reclaim_mark_used (211 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (300 samples, 0.02%)_malloc_zone_realloc (2,497 samples, 0.13%)xzm_realloc (2,367 samples, 0.12%)_realloc (2,735 samples, 0.14%)alloc::raw_vec::RawVec<T,A>::grow_one (3,029 samples, 0.16%)alloc::raw_vec::finish_grow (2,919 samples, 0.15%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20,175 samples, 1.06%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (731 samples, 0.04%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (21,013 samples, 1.10%)_platform_memcmp (471 samples, 0.02%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (559 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (834 samples, 0.04%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1,836 samples, 0.10%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (23,301 samples, 1.22%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (23,397 samples, 1.23%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (23,490 samples, 1.23%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (424 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (485 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (90,126 samples, 4.74%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (90,161 samples, 4.74%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (90,451 samples, 4.76%)<serde..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (90,560 samples, 4.76%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (90,840 samples, 4.78%)<serde..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (90,834 samples, 4.78%)<serde..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (237 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (90,854 samples, 4.78%)<serde.._xzm_free (385 samples, 0.02%)DYLD-STUB$$free (229 samples, 0.01%)_free (416 samples, 0.02%)_xzm_free (1,862 samples, 0.10%)_platform_memset (227 samples, 0.01%)DYLD-STUB$$free (362 samples, 0.02%)_free (776 samples, 0.04%)_xzm_free (2,924 samples, 0.15%)core::ptr::drop_in_place<serde_core::private::content::Content> (14,753 samples, 0.78%)core::ptr::drop_in_place<serde_core::private::content::Content> (11,115 samples, 0.58%)core::ptr::drop_in_place<serde_core::private::content::Content> (4,630 samples, 0.24%)core::ptr::drop_in_place<serde_core::private::content::Content> (1,357 samples, 0.07%)core::ptr::drop_in_place<serde_core::private::content::Content> (15,703 samples, 0.83%)core::ptr::drop_in_place<serde_core::private::content::Content> (15,630 samples, 0.82%)core::ptr::drop_in_place<serde_core::private::content::Content> (15,433 samples, 0.81%)core::ptr::drop_in_place<serde_core::private::content::Content> (15,750 samples, 0.83%)core::ptr::drop_in_place<serde_core::private::content::Content> (15,734 samples, 0.83%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (192 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (299 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (702 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (403 samples, 0.02%)_malloc_zone_realloc (565 samples, 0.03%)xzm_realloc (478 samples, 0.03%)_realloc (687 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (946 samples, 0.05%)alloc::raw_vec::finish_grow (855 samples, 0.04%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (322 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (205 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (220 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (913 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (304 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (243 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (1,312 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2,246 samples, 0.12%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (341 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2,524 samples, 0.13%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (450 samples, 0.02%)_platform_memmove (942 samples, 0.05%)_xzm_free (441 samples, 0.02%)_xzm_xzone_malloc_tiny (203 samples, 0.01%)_malloc_zone_realloc (2,213 samples, 0.12%)xzm_realloc (2,105 samples, 0.11%)_realloc (2,460 samples, 0.13%)alloc::raw_vec::RawVec<T,A>::grow_one (2,885 samples, 0.15%)alloc::raw_vec::finish_grow (2,710 samples, 0.14%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (349 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1,632 samples, 0.09%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (249 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (2,014 samples, 0.11%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (4,308 samples, 0.23%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2,294 samples, 0.12%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (430 samples, 0.02%)<deduplicated_symbol> (329 samples, 0.02%)_malloc_zone_malloc (436 samples, 0.02%)_xzm_xzone_malloc (536 samples, 0.03%)_xzm_reclaim_mark_used (231 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (336 samples, 0.02%)xzm_chunk_mark_used (235 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (408 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2,423 samples, 0.13%)alloc::raw_vec::finish_grow (2,166 samples, 0.11%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (6,435 samples, 0.34%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (724 samples, 0.04%)<deduplicated_symbol> (649 samples, 0.03%)__rustc::__rdl_alloc (289 samples, 0.02%)_malloc_zone_malloc (950 samples, 0.05%)_platform_memmove (247 samples, 0.01%)_xzm_free (246 samples, 0.01%)_xzm_xzone_malloc_tiny (204 samples, 0.01%)_malloc_zone_realloc (1,199 samples, 0.06%)xzm_realloc (1,106 samples, 0.06%)_realloc (1,445 samples, 0.08%)_xzm_xzone_malloc (1,070 samples, 0.06%)_xzm_reclaim_mark_used (305 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (386 samples, 0.02%)xzm_chunk_mark_used (306 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (431 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (6,017 samples, 0.32%)alloc::raw_vec::finish_grow (5,499 samples, 0.29%)alloc::raw_vec::finish_grow (269 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (30,149 samples, 1.59%)serde_core::de::Deserializer::__deserialize_content_v1 (14,005 samples, 0.74%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (11,282 samples, 0.59%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (740 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3,253 samples, 0.17%)alloc::raw_vec::RawVec<T,A>::grow_one (233 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (527 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (54,231 samples, 2.85%)<s..serde_core::de::Deserializer::__deserialize_content_v1 (37,357 samples, 1.96%)s..serde_json::de::Deserializer<R>::end_seq (541 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (603 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (8,008 samples, 0.42%)serde_core::de::Deserializer::__deserialize_content_v1 (311 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (65,755 samples, 3.46%)ser..serde_json::de::Deserializer<R>::end_map (213 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (73,707 samples, 3.87%)<ser..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (335 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (413 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (477 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (80,570 samples, 4.24%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (77,632 samples, 4.08%)serd..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (81,067 samples, 4.26%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (80,751 samples, 4.25%)serde..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (81,208 samples, 4.27%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (81,116 samples, 4.26%)serde..serde_core::de::Deserializer::__deserialize_content_v1 (81,400 samples, 4.28%)serde..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (81,605 samples, 4.29%)<serd..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (81,685 samples, 4.29%)<serd..serde_core::de::Deserializer::__deserialize_content_v1 (81,633 samples, 4.29%)serde..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (188,342 samples, 9.90%)<serde_core::d..starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (188,309 samples, 9.90%)starknet_provi..serde_core::de::Deserializer::__deserialize_content_v1 (81,695 samples, 4.29%)serde..serde_json::de::from_str (188,346 samples, 9.90%)serde_json::de..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (188,345 samples, 9.90%)<&mut serde_js..<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (221,813 samples, 11.66%)<starknet_provide..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (433 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (424 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (214 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (443 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (436 samples, 0.02%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (538 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (745 samples, 0.04%)<deduplicated_symbol> (989 samples, 0.05%)DYLD-STUB$$malloc (215 samples, 0.01%)DYLD-STUB$$memcpy (212 samples, 0.01%)__rustc::__rdl_alloc (641 samples, 0.03%)__rustc::__rust_alloc (198 samples, 0.01%)_malloc_zone_malloc (1,398 samples, 0.07%)_platform_memmove (1,893 samples, 0.10%)_xzm_xzone_malloc (1,460 samples, 0.08%)<alloc::string::String as core::clone::Clone>::clone (7,947 samples, 0.42%)serde::private::de::content::content_clone (9,464 samples, 0.50%)serde::private::de::content::content_clone (639 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (596 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (12,202 samples, 0.64%)serde::private::de::content::content_clone (11,204 samples, 0.59%)<&mut A as serde_core::de::MapAccess>::next_key_seed (439 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (729 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (960 samples, 0.05%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (894 samples, 0.05%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (458 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,082 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (970 samples, 0.05%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (53,715 samples, 2.82%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (46,753 samples, 2.46%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (25,666 samples, 1.35%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (55,474 samples, 2.92%)<s..starknet_types_core::felt::Felt::from_hex (54,458 samples, 2.86%)st..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (193 samples, 0.01%)DYLD-STUB$$free (259 samples, 0.01%)_free (1,055 samples, 0.06%)_xzm_free (2,777 samples, 0.15%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (60,723 samples, 3.19%)<se.._xzm_free (578 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (61,540 samples, 3.24%)<se..<starknet_core::types::serde_impls::NumAsHexVisitorU128 as serde_core::de::Visitor>::visit_str (254 samples, 0.01%)<starknet_core::types::serde_impls::NumAsHexVisitorU64 as serde_core::de::Visitor>::visit_str (210 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (639 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1,090 samples, 0.06%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1,284 samples, 0.07%)_xzm_free (223 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (64,856 samples, 3.41%)<se..<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (64,988 samples, 3.42%)<st..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (78,124 samples, 4.11%)star..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::InvokeTransactionContent>::deserialize (65,786 samples, 3.46%)sta..<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (402 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (868 samples, 0.05%)<deduplicated_symbol> (261 samples, 0.01%)_malloc_zone_malloc (364 samples, 0.02%)_xzm_xzone_malloc (489 samples, 0.03%)<deduplicated_symbol> (1,006 samples, 0.05%)DYLD-STUB$$malloc (211 samples, 0.01%)DYLD-STUB$$memcpy (231 samples, 0.01%)__rustc::__rdl_alloc (384 samples, 0.02%)_malloc_zone_malloc (1,520 samples, 0.08%)_platform_memmove (1,671 samples, 0.09%)_xzm_xzone_malloc (1,419 samples, 0.07%)<alloc::string::String as core::clone::Clone>::clone (8,130 samples, 0.43%)<deduplicated_symbol> (571 samples, 0.03%)DYLD-STUB$$malloc (199 samples, 0.01%)__rustc::__rdl_alloc (318 samples, 0.02%)_malloc_zone_malloc (785 samples, 0.04%)_xzm_xzone_malloc (1,217 samples, 0.06%)_xzm_xzone_malloc_tiny (461 samples, 0.02%)<deduplicated_symbol> (1,800 samples, 0.09%)DYLD-STUB$$malloc (376 samples, 0.02%)DYLD-STUB$$memcpy (428 samples, 0.02%)__rustc::__rdl_alloc (810 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (334 samples, 0.02%)_malloc_zone_malloc (2,494 samples, 0.13%)_platform_memmove (3,342 samples, 0.18%)_xzm_xzone_malloc (2,398 samples, 0.13%)serde::private::de::content::content_clone (14,274 samples, 0.75%)<alloc::string::String as core::clone::Clone>::clone (13,290 samples, 0.70%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (34,881 samples, 1.83%)<..serde::private::de::content::content_clone (33,592 samples, 1.77%)serde::private::de::content::content_clone (32,866 samples, 1.73%)serde::private::de::content::content_clone (29,013 samples, 1.53%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,127 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (1,103 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1,098 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1,061 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (547 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (246 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (20,846 samples, 1.10%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (19,193 samples, 1.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (11,883 samples, 0.62%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (21,441 samples, 1.13%)starknet_types_core::felt::Felt::from_hex (21,054 samples, 1.11%)<deduplicated_symbol> (500 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (281 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (72,312 samples, 3.80%)<lam..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (59,953 samples, 3.15%)lam..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (33,288 samples, 1.75%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (75,272 samples, 3.96%)<ser..starknet_types_core::felt::Felt::from_hex (73,585 samples, 3.87%)star..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (352 samples, 0.02%)DYLD-STUB$$free (460 samples, 0.02%)_free (1,888 samples, 0.10%)_malloc_zone_malloc (629 samples, 0.03%)_xzm_free (5,829 samples, 0.31%)_platform_memset (234 samples, 0.01%)_xzm_xzone_malloc (1,384 samples, 0.07%)_xzm_xzone_malloc_tiny (354 samples, 0.02%)_xzm_reclaim_mark_used_locked (395 samples, 0.02%)mach_vm_reclaim_try_cancel (393 samples, 0.02%)mach_absolute_time (387 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (791 samples, 0.04%)xzm_chunk_mark_used (724 samples, 0.04%)_xzm_reclaim_mark_used (722 samples, 0.04%)mach_vm_reclaim_update_kernel_accounting (325 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (303 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (939 samples, 0.05%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (90,757 samples, 4.77%)<serde..DYLD-STUB$$free (199 samples, 0.01%)_free (499 samples, 0.03%)_platform_memset (416 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (95,129 samples, 5.00%)<serde.._xzm_free (3,095 samples, 0.16%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (278 samples, 0.01%)DYLD-STUB$$free (355 samples, 0.02%)_free (1,133 samples, 0.06%)_xzm_free (3,723 samples, 0.20%)_free (242 samples, 0.01%)serde::private::de::content::MapDeserializer<E>::end (1,701 samples, 0.09%)_xzm_free (1,088 samples, 0.06%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (125,992 samples, 6.62%)<serde::p.._xzm_free (406 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (127,666 samples, 6.71%)<serde_co..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (127,881 samples, 6.72%)<serde::p..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (338 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (295 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (368 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (345 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (829 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (131,091 samples, 6.89%)<serde::p..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (131,209 samples, 6.90%)<starknet..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (244,491 samples, 12.85%)<serde::private::de..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (166,176 samples, 8.74%)starknet_cor..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (244,613 samples, 12.86%)<serde::private::de..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (244,610 samples, 12.86%)<serde_core::de::im..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (245,225 samples, 12.89%)<serde::private::de.._xzm_free (200 samples, 0.01%)_free (311 samples, 0.02%)_xzm_free (1,494 samples, 0.08%)DYLD-STUB$$free (746 samples, 0.04%)_free (1,666 samples, 0.09%)_xzm_free (6,849 samples, 0.36%)_platform_memset (451 samples, 0.02%)DYLD-STUB$$free (844 samples, 0.04%)__rustc::__rdl_dealloc (204 samples, 0.01%)_free (1,969 samples, 0.10%)_platform_memset (596 samples, 0.03%)_xzm_free (7,538 samples, 0.40%)DYLD-STUB$$free (999 samples, 0.05%)_free (2,185 samples, 0.11%)_xzm_free (7,329 samples, 0.39%)_platform_memset (359 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (1,203 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (14,816 samples, 0.78%)core::ptr::drop_in_place<serde_core::private::content::Content> (27,120 samples, 1.43%)core::ptr::drop_in_place<serde_core::private::content::Content> (37,375 samples, 1.96%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (39,941 samples, 2.10%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (39,817 samples, 2.09%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (39,550 samples, 2.08%)c..core::ptr::drop_in_place<serde_core::private::content::Content> (40,074 samples, 2.11%)c..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (238 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (958 samples, 0.05%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (264 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1,234 samples, 0.06%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (1,091 samples, 0.06%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (1,386 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2,072 samples, 0.11%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (364 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (2,232 samples, 0.12%)<alloc::collections::btree::map::IntoIter<K,V,A> as core::ops::drop::Drop>::drop (294 samples, 0.02%)<deduplicated_symbol> (254 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (430 samples, 0.02%)<deduplicated_symbol> (515 samples, 0.03%)<serde_json::value::de::SeqDeserializer as serde_core::de::SeqAccess>::size_hint (407 samples, 0.02%)_malloc_zone_malloc (664 samples, 0.03%)_xzm_xzone_malloc (1,618 samples, 0.09%)_xzm_xzone_malloc_tiny (220 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (13,099 samples, 0.69%)DYLD-STUB$$free (232 samples, 0.01%)_free (551 samples, 0.03%)_xzm_free (2,416 samples, 0.13%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (18,771 samples, 0.99%)serde_json::value::de::visit_array (17,469 samples, 0.92%)serde_json::value::de::SeqDeserializer::new (203 samples, 0.01%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (460 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (460 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (19,907 samples, 1.05%)_malloc_zone_malloc (368 samples, 0.02%)_xzm_xzone_malloc (390 samples, 0.02%)_free (272 samples, 0.01%)_xzm_free (1,856 samples, 0.10%)_platform_memset (481 samples, 0.03%)_xzm_xzone_madvise_batch (314 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (27,904 samples, 1.47%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4,149 samples, 0.22%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (528 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (33,899 samples, 1.78%)<..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (29,297 samples, 1.54%)serde_json::value::de::MapDeserializer::new (248 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (36,796 samples, 1.93%)<..serde_json::value::de::visit_array (34,403 samples, 1.81%)s..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (375 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (375 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (37,336 samples, 1.96%)<.._xzm_free (201 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (38,774 samples, 2.04%)<..alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (661 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (38,958 samples, 2.05%)<..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (38,931 samples, 2.05%)s..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (39,035 samples, 2.05%)<..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (39,295 samples, 2.07%)<..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (39,420 samples, 2.07%)<..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (39,329 samples, 2.07%)s..<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (39,553 samples, 2.08%)<..serde_json::value::de::visit_array (39,436 samples, 2.07%)s..<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (39,614 samples, 2.08%)<..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (39,757 samples, 2.09%)<..<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (547,176 samples, 28.77%)<starknet_providers::jsonrpc::JsonRpcClient<T>..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (547,088 samples, 28.76%)starknet_providers::jsonrpc::JsonRpcClient<T>:..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (325,129 samples, 17.09%)starknet_core::types::_::_..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (39,773 samples, 2.09%)s..<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (195 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (192 samples, 0.01%)_platform_memmove (2,513 samples, 0.13%)_platform_memmove (752 samples, 0.04%)mach_vm_copy (423 samples, 0.02%)mach_msg2_internal (423 samples, 0.02%)mach_msg2_trap (421 samples, 0.02%)_malloc_zone_realloc (1,279 samples, 0.07%)xzm_realloc (1,279 samples, 0.07%)_realloc (1,281 samples, 0.07%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1,287 samples, 0.07%)alloc::raw_vec::finish_grow (1,284 samples, 0.07%)hashbrown::map::HashMap<K,V,S,A>::insert (264 samples, 0.01%)_platform_memmove (690 samples, 0.04%)_malloc_zone_realloc (972 samples, 0.05%)xzm_realloc (958 samples, 0.05%)_realloc (1,004 samples, 0.05%)alloc::raw_vec::RawVec<T,A>::grow_one (1,054 samples, 0.06%)alloc::raw_vec::finish_grow (1,036 samples, 0.05%)torii::etl::extractor::starknet_helpers::block_into_contexts (2,737 samples, 0.14%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (554,652 samples, 29.16%)<torii::etl::extractor::block_range::BlockRange..<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (329 samples, 0.02%)core::hash::BuildHasher::hash_one (196 samples, 0.01%)<deduplicated_symbol> (1,694 samples, 0.09%)mio::waker::Waker::wake (1,687 samples, 0.09%)kevent (1,681 samples, 0.09%)__psynch_cvsignal (678 samples, 0.04%)pthread_cond_signal (682 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (787 samples, 0.04%)tokio::runtime::context::with_scheduler (2,532 samples, 0.13%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2,537 samples, 0.13%)futures_channel::mpsc::Receiver<T>::next_message (2,748 samples, 0.14%)tokio::runtime::task::waker::wake_by_val (2,551 samples, 0.13%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2,780 samples, 0.15%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (2,827 samples, 0.15%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2,861 samples, 0.15%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2,903 samples, 0.15%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (2,994 samples, 0.16%)_platform_memmove (949 samples, 0.05%)encoding_rs::Encoding::decode_without_bom_handling (679 samples, 0.04%)encoding_rs::utf_8::utf8_valid_up_to (678 samples, 0.04%)_platform_memmove (1,698 samples, 0.09%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (2,031 samples, 0.11%)http_body_util::collected::Collected<B>::to_bytes (2,035 samples, 0.11%)reqwest::async_impl::response::Response::text::_{{closure}} (6,734 samples, 0.35%)<deduplicated_symbol> (853 samples, 0.04%)DYLD-STUB$$memcpy (193 samples, 0.01%)__rustc::__rdl_alloc (236 samples, 0.01%)_malloc_zone_malloc (749 samples, 0.04%)_platform_memmove (2,261 samples, 0.12%)_xzm_xzone_malloc (794 samples, 0.04%)_xzm_xzone_find_and_malloc_from_freelist_chunk (444 samples, 0.02%)xzm_chunk_mark_used (318 samples, 0.02%)_xzm_reclaim_mark_used (317 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (537 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6,343 samples, 0.33%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (195 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (198 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (215 samples, 0.01%)_platform_memmove (239 samples, 0.01%)_malloc_zone_realloc (322 samples, 0.02%)xzm_realloc (320 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7,806 samples, 0.41%)alloc::raw_vec::RawVec<T,A>::grow_one (333 samples, 0.02%)alloc::raw_vec::finish_grow (329 samples, 0.02%)_realloc (329 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (7,810 samples, 0.41%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (7,849 samples, 0.41%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7,862 samples, 0.41%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7,853 samples, 0.41%)core::ptr::drop_in_place<serde_core::private::content::Content> (589 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (350 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (607 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (604 samples, 0.03%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (619 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (241 samples, 0.01%)_platform_memmove (198 samples, 0.01%)xzm_realloc (290 samples, 0.02%)_malloc_zone_realloc (293 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (307 samples, 0.02%)alloc::raw_vec::finish_grow (305 samples, 0.02%)_realloc (304 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6,334 samples, 0.33%)serde_core::de::Deserializer::__deserialize_content_v1 (4,753 samples, 0.25%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (4,220 samples, 0.22%)_platform_memmove (218 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (593 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7,300 samples, 0.38%)serde_core::de::Deserializer::__deserialize_content_v1 (7,293 samples, 0.38%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (15,813 samples, 0.83%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (15,810 samples, 0.83%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (15,801 samples, 0.83%)serde_core::de::Deserializer::__deserialize_content_v1 (7,329 samples, 0.39%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7,326 samples, 0.39%)serde_core::de::Deserializer::__deserialize_content_v1 (7,309 samples, 0.38%)serde_json::de::from_str (15,817 samples, 0.83%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (22,867 samples, 1.20%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (51,301 samples, 2.70%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (48,082 samples, 2.53%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (26,102 samples, 1.37%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (52,058 samples, 2.74%)<s..starknet_types_core::felt::Felt::from_hex (51,739 samples, 2.72%)st..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (52,502 samples, 2.76%)<s..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (52,419 samples, 2.76%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (253 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (248 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (246 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (246 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (243 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (52,798 samples, 2.78%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (263 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (258 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (258 samples, 0.01%)DYLD-STUB$$free (225 samples, 0.01%)_free (639 samples, 0.03%)_xzm_free (2,189 samples, 0.12%)core::ptr::drop_in_place<serde_core::private::content::Content> (380 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,638 samples, 0.19%)core::ptr::drop_in_place<serde_core::private::content::Content> (3,782 samples, 0.20%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1,319 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1,412 samples, 0.07%)serde_json::value::de::visit_array (1,337 samples, 0.07%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (1,414 samples, 0.07%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (80,966 samples, 4.26%)<star..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (80,946 samples, 4.26%)stark..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (58,004 samples, 3.05%)sta..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (1,423 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1,420 samples, 0.07%)<tokio::time::timeout::Timeout<T> as core::future::future::Future>::poll (196 samples, 0.01%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (247 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (461 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (467 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (508 samples, 0.03%)<deduplicated_symbol> (491 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (486 samples, 0.03%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (687 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (196 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (400 samples, 0.02%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (271 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (410 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (474 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (405 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (207 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (464 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (426 samples, 0.02%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (588 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (489 samples, 0.03%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1,320 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (1,286 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEvent>::deserialize (196 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (1,337 samples, 0.07%)serde_json::de::from_trait (1,322 samples, 0.07%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (1,322 samples, 0.07%)alloc::fmt::format::format_inner (214 samples, 0.01%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (472 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (298 samples, 0.02%)alloc::fmt::format::format_inner (289 samples, 0.02%)core::fmt::write (214 samples, 0.01%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (513 samples, 0.03%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (415 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (257 samples, 0.01%)alloc::fmt::format::format_inner (411 samples, 0.02%)core::fmt::write (291 samples, 0.02%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (629 samples, 0.03%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (538 samples, 0.03%)torii::etl::identification::registry::ContractRegistry::run_rules (1,622 samples, 0.09%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (85,288 samples, 4.48%)<tori..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (85,251 samples, 4.48%)torii..torii::etl::decoder::DecoderId::new (358 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (220 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (624 samples, 0.03%)<deduplicated_symbol> (422 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (396 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (274 samples, 0.01%)core::fmt::write (250 samples, 0.01%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (224 samples, 0.01%)alloc::fmt::format::format_inner (395 samples, 0.02%)core::fmt::write (394 samples, 0.02%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (381 samples, 0.02%)core::fmt::write (279 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (462 samples, 0.02%)alloc::fmt::format::format_inner (223 samples, 0.01%)core::fmt::write (222 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (213 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (263 samples, 0.01%)serde_core::ser::Serializer::collect_seq (268 samples, 0.01%)<deduplicated_symbol> (266 samples, 0.01%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (766 samples, 0.04%)serde_core::ser::Serializer::collect_seq (859 samples, 0.05%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (858 samples, 0.05%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (802 samples, 0.04%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (800 samples, 0.04%)serde_json::de::from_str (274 samples, 0.01%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (273 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (272 samples, 0.01%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (251 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (1,375 samples, 0.07%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (1,577 samples, 0.08%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (1,572 samples, 0.08%)_xzm_free (362 samples, 0.02%)core::hash::BuildHasher::hash_one (346 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (220 samples, 0.01%)core::hash::BuildHasher::hash_one (241 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (550 samples, 0.03%)hashbrown::raw::RawTable<T,A>::reserve_rehash (204 samples, 0.01%)sqlite3RunParser (193 samples, 0.01%)rusqlite::inner_connection::InnerConnection::prepare (209 samples, 0.01%)sqlite3LockAndPrepare (208 samples, 0.01%)sqlite3Prepare (206 samples, 0.01%)sqlite3VdbeMemSetStr (536 samples, 0.03%)bindText (928 samples, 0.05%)vdbeUnbind (270 samples, 0.01%)rusqlite::statement::Statement::bind_parameter (1,682 samples, 0.09%)_platform_memmove (798 samples, 0.04%)pcache1Unpin (229 samples, 0.01%)btreeReleaseAllCursorPages (850 samples, 0.04%)sqlite3PcacheRelease (389 samples, 0.02%)allocateCursor (1,667 samples, 0.09%)sqlite3VdbeFreeCursorNN (977 samples, 0.05%)sqlite3Malloc (346 samples, 0.02%)pcache1Alloc (514 samples, 0.03%)allocateTempSpace (526 samples, 0.03%)applyAffinity (232 samples, 0.01%)_platform_memset (588 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (224 samples, 0.01%)sqlite3MemMalloc (358 samples, 0.02%)sqlite3Malloc (579 samples, 0.03%)pcache1Alloc (725 samples, 0.04%)pcache1FetchStage2 (842 samples, 0.04%)pcache1Fetch (910 samples, 0.05%)getPageNormal (1,623 samples, 0.09%)newDatabase (322 samples, 0.02%)btreeBeginTrans (2,290 samples, 0.12%)pcache1Fetch (593 samples, 0.03%)getPageNormal (799 samples, 0.04%)getPageMMap (868 samples, 0.05%)getAndInitPage (1,063 samples, 0.06%)moveToChild (1,256 samples, 0.07%)getPageNormal (224 samples, 0.01%)getPageMMap (243 samples, 0.01%)getAndInitPage (298 samples, 0.02%)btreeLast (1,716 samples, 0.09%)moveToRoot (350 samples, 0.02%)btreeParseCellPtr (277 samples, 0.01%)getPageMMap (323 samples, 0.02%)getAndInitPage (378 samples, 0.02%)moveToRoot (461 samples, 0.02%)sqlite3BlobCompare (253 samples, 0.01%)_platform_memset (477 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (285 samples, 0.01%)sqlite3MemMalloc (425 samples, 0.02%)sqlite3Malloc (622 samples, 0.03%)pcache1Alloc (763 samples, 0.04%)pcache1FetchStage2 (877 samples, 0.05%)pcache1Fetch (931 samples, 0.05%)getPageNormal (1,586 samples, 0.08%)btreeGetUnusedPage (1,631 samples, 0.09%)allocateBtreePage (1,884 samples, 0.10%)sqlite3BtreeCreateTable (1,981 samples, 0.10%)sqlite3BtreeCursor (507 samples, 0.03%)pcache1FetchStage2 (563 samples, 0.03%)pcache1Fetch (3,234 samples, 0.17%)unixRead (41,585 samples, 2.19%)u..pread (41,457 samples, 2.18%)p..readDbPage (41,943 samples, 2.21%)r..walFindFrame (226 samples, 0.01%)getPageNormal (45,315 samples, 2.38%)ge..getPageMMap (45,385 samples, 2.39%)ge..getAndInitPage (45,657 samples, 2.40%)ge..DYLD-STUB$$memcmp (196 samples, 0.01%)_platform_memcmp (851 samples, 0.04%)sqlite3BtreeIndexMoveto (53,405 samples, 2.81%)sq..sqlite3VdbeRecordCompareWithSkip (3,420 samples, 0.18%)_platform_memmove (1,825 samples, 0.10%)_platform_memset (202 samples, 0.01%)_xzm_xzone_free_freelist (567 samples, 0.03%)mach_absolute_time (465 samples, 0.02%)_platform_memset (716 samples, 0.04%)pcache1Fetch (213 samples, 0.01%)getPageNormal (956 samples, 0.05%)getPageMMap (962 samples, 0.05%)btreeGetUnusedPage (979 samples, 0.05%)allocateBtreePage (1,066 samples, 0.06%)cellSizePtrIdxLeaf (333 samples, 0.02%)computeCellSize (564 samples, 0.03%)_platform_memmove (248 samples, 0.01%)dropCell (691 samples, 0.04%)freeSpace (339 samples, 0.02%)_platform_memmove (311 samples, 0.02%)pageFreeArray (1,609 samples, 0.08%)freeSpace (569 samples, 0.03%)_platform_memmove (752 samples, 0.04%)editPage (4,491 samples, 0.24%)pageInsertArray (2,057 samples, 0.11%)pageFindSlot (523 samples, 0.03%)pcache1FetchStage2 (301 samples, 0.02%)pcache1Fetch (2,746 samples, 0.14%)pthread_mutex_unlock (354 samples, 0.02%)unixRead (19,651 samples, 1.03%)pread (19,480 samples, 1.02%)readDbPage (19,812 samples, 1.04%)getPageNormal (22,698 samples, 1.19%)getPageMMap (22,770 samples, 1.20%)getAndInitPage (23,012 samples, 1.21%)_platform_memmove (426 samples, 0.02%)insertCell (809 samples, 0.04%)sqlite3MemMalloc (476 samples, 0.03%)sqlite3Malloc (819 samples, 0.04%)pcache1Alloc (1,029 samples, 0.05%)_xzm_free (313 samples, 0.02%)pcache1Free (609 samples, 0.03%)_xzm_xzone_malloc_small_freelist (194 samples, 0.01%)sqlite3MemMalloc (337 samples, 0.02%)sqlite3Malloc (990 samples, 0.05%)sqlite3MemSize (446 samples, 0.02%)xzm_malloc_zone_size (396 samples, 0.02%)balance (40,015 samples, 2.10%)b.._platform_memmove (211 samples, 0.01%)defragmentPage (511 samples, 0.03%)pageFindSlot (540 samples, 0.03%)_pthread_mutex_firstfit_unlock_slow (193 samples, 0.01%)_pthread_mutex_firstfit_wake (192 samples, 0.01%)__psynch_mutexdrop (191 samples, 0.01%)pcache1FetchStage2 (196 samples, 0.01%)pthread_mutex_lock (570 samples, 0.03%)pcache1Fetch (9,269 samples, 0.49%)pthread_mutex_unlock (543 samples, 0.03%)unixRead (7,479 samples, 0.39%)pread (7,369 samples, 0.39%)readDbPage (7,585 samples, 0.40%)getPageNormal (17,259 samples, 0.91%)getPageMMap (17,595 samples, 0.93%)getAndInitPage (18,449 samples, 0.97%)getPageNormal (297 samples, 0.02%)pcache1Fetch (798 samples, 0.04%)getPageNormal (945 samples, 0.05%)getPageMMap (1,039 samples, 0.05%)getAndInitPage (1,393 samples, 0.07%)moveToRoot (1,667 samples, 0.09%)DYLD-STUB$$memcmp (1,520 samples, 0.08%)_platform_memcmp (24,195 samples, 1.27%)sqlite3VdbeRecordCompareWithSkip (40,818 samples, 2.15%)s..sqlite3BtreeIndexMoveto (74,209 samples, 3.90%)sqli..vdbeRecordCompareInt (1,641 samples, 0.09%)getAndInitPage (219 samples, 0.01%)moveToRoot (261 samples, 0.01%)sqlite3BtreeTableMoveto (557 samples, 0.03%)sqlite3BtreeInsert (122,232 samples, 6.43%)sqlite3B..sqlite3VdbeRecordCompareWithSkip (1,254 samples, 0.07%)_platform_memset (312 samples, 0.02%)sqlite3Malloc (392 samples, 0.02%)pcache1ResizeHash (845 samples, 0.04%)sqlite3Malloc (337 samples, 0.02%)pcache1Create (1,445 samples, 0.08%)_xzm_xzone_malloc_tiny (237 samples, 0.01%)sqlite3MemMalloc (543 samples, 0.03%)sqlite3Malloc (1,242 samples, 0.07%)sqlite3MemSize (242 samples, 0.01%)sqlite3Malloc (427 samples, 0.02%)pcache1Alloc (604 samples, 0.03%)sqlite3PagerSetPagesize (923 samples, 0.05%)sqlite3BtreeOpen (4,014 samples, 0.21%)pcache1Fetch (249 samples, 0.01%)getPageNormal (372 samples, 0.02%)getPageMMap (687 samples, 0.04%)getAndInitPage (791 samples, 0.04%)moveToChild (881 samples, 0.05%)getPageMMap (302 samples, 0.02%)getAndInitPage (350 samples, 0.02%)moveToRoot (376 samples, 0.02%)sqlite3BtreeTableMoveto (2,747 samples, 0.14%)sqlite3GetVarint (937 samples, 0.05%)btreeReleaseAllCursorPages (472 samples, 0.02%)sqlite3VdbeFreeCursorNN (687 samples, 0.04%)releaseMemArray (708 samples, 0.04%)pcache1Unpin (1,081 samples, 0.06%)pthread_mutex_lock (522 samples, 0.03%)pthread_mutex_unlock (425 samples, 0.02%)btreeReleaseAllCursorPages (3,415 samples, 0.18%)sqlite3PcacheRelease (1,290 samples, 0.07%)pcache1Free (474 samples, 0.02%)btreeEndTransaction (209 samples, 0.01%)pager_end_transaction (464 samples, 0.02%)sqlite3PagerRollback (533 samples, 0.03%)sqlite3BtreeRollback (953 samples, 0.05%)_xzm_free (204 samples, 0.01%)pcache1Destroy (554 samples, 0.03%)pcache1Free (403 samples, 0.02%)sqlite3MemSize (366 samples, 0.02%)xzm_malloc_zone_size (322 samples, 0.02%)pcache1TruncateUnsafe (1,114 samples, 0.06%)pcache1Truncate (1,200 samples, 0.06%)sqlite3PagerClose (2,707 samples, 0.14%)sqlite3BtreeClose (4,669 samples, 0.25%)sqlite3VdbeFreeCursorNN (8,706 samples, 0.46%)sqlite3VdbeHalt (9,738 samples, 0.51%)sqlite3VdbeMemGrow (585 samples, 0.03%)sqlite3VdbeExec (213,250 samples, 11.21%)sqlite3VdbeExecrusqlite::statement::Statement::execute_with_bound_parameters (214,192 samples, 11.26%)rusqlite::stateme..sqlite3_step (214,004 samples, 11.25%)sqlite3_stepfcntl (806 samples, 0.04%)__fcntl (805 samples, 0.04%)pager_unlock (850 samples, 0.04%)unixShmLock (841 samples, 0.04%)sqlite3VdbeHalt (1,068 samples, 0.06%)vdbeCommit (904 samples, 0.05%)sqlite3BtreeCommitPhaseTwo (876 samples, 0.05%)core::ptr::drop_in_place<rusqlite::row::Rows> (1,102 samples, 0.06%)sqlite3_reset (1,094 samples, 0.06%)sqlite3VdbeReset (1,080 samples, 0.06%)fcntl (713 samples, 0.04%)__fcntl (708 samples, 0.04%)unixShmLock (735 samples, 0.04%)btreeBeginTrans (921 samples, 0.05%)sqlite3PagerSharedLock (808 samples, 0.04%)walTryBeginRead (798 samples, 0.04%)pcache1Fetch (502 samples, 0.03%)unixRead (637 samples, 0.03%)pread (637 samples, 0.03%)readDbPage (642 samples, 0.03%)getPageNormal (1,153 samples, 0.06%)getPageMMap (1,238 samples, 0.07%)getAndInitPage (1,270 samples, 0.07%)sqlite3BtreeIndexMoveto (3,885 samples, 0.20%)sqlite3VdbeRecordCompareWithSkip (1,293 samples, 0.07%)_platform_memcmp (285 samples, 0.01%)unixRead (356 samples, 0.02%)pread (356 samples, 0.02%)readDbPage (358 samples, 0.02%)getPageNormal (511 samples, 0.03%)getPageMMap (550 samples, 0.03%)moveToChild (751 samples, 0.04%)getAndInitPage (741 samples, 0.04%)sqlite3VdbeFinishMoveto (1,547 samples, 0.08%)sqlite3BtreeTableMoveto (1,547 samples, 0.08%)sqlite3VdbeExec (6,659 samples, 0.35%)rusqlite::row::Rows::get_expected_row (6,685 samples, 0.35%)sqlite3_step (6,680 samples, 0.35%)rusqlite::statement::Statement::query_row (7,973 samples, 0.42%)walIndexAppend (835 samples, 0.04%)unixWrite (96,741 samples, 5.09%)unixWr..pwrite (96,623 samples, 5.08%)pwritepagerWalFrames (114,970 samples, 6.04%)pagerWal..walWriteOneFrame (113,506 samples, 5.97%)walWrite..walEncodeFrame (16,662 samples, 0.88%)walChecksumBytes (16,605 samples, 0.87%)sqlite3PcacheCleanAll (957 samples, 0.05%)sqlite3PcacheDirtyList (4,466 samples, 0.23%)sqlite3BtreeCommitPhaseOne (120,443 samples, 6.33%)sqlite3B..sqlite3PagerCommitPhaseOne (120,443 samples, 6.33%)sqlite3P..sqlite3VdbeExec (120,485 samples, 6.33%)sqlite3V..sqlite3VdbeHalt (120,484 samples, 6.33%)sqlite3V..vdbeCommit (120,483 samples, 6.33%)vdbeComm..unixRead (17,808 samples, 0.94%)pread (17,776 samples, 0.93%)unixSync (2,762 samples, 0.15%)fsync (2,761 samples, 0.15%)unixWrite (67,786 samples, 3.56%)unix..pwrite (67,726 samples, 3.56%)pwri..sqlite3WalCheckpoint (90,106 samples, 4.74%)sqlite..rusqlite::Connection::execute_batch (210,653 samples, 11.07%)rusqlite::Connec..sqlite3_step (210,639 samples, 11.07%)sqlite3_stepsqlite3WalDefaultHook (90,152 samples, 4.74%)sqlite..sqlite3_wal_checkpoint_v2 (90,152 samples, 4.74%)sqlite..sqlite3BtreeCheckpoint (90,148 samples, 4.74%)sqlite..rusqlite::transaction::Transaction::commit (210,654 samples, 11.07%)rusqlite::transa..torii_common::felt_to_blob (368 samples, 0.02%)core::hash::BuildHasher::hash_one (422 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (264 samples, 0.01%)core::hash::BuildHasher::hash_one (533 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (478 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (928 samples, 0.05%)core::hash::BuildHasher::hash_one (308 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (266 samples, 0.01%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (630 samples, 0.03%)rusqlite::statement::Statement::bind_parameter (255 samples, 0.01%)getPageMMap (202 samples, 0.01%)getPageNormal (191 samples, 0.01%)getAndInitPage (216 samples, 0.01%)sqlite3BtreeIndexMoveto (1,737 samples, 0.09%)sqlite3VdbeRecordCompareWithSkip (755 samples, 0.04%)_platform_memcmp (223 samples, 0.01%)balance (243 samples, 0.01%)getAndInitPage (406 samples, 0.02%)getPageMMap (404 samples, 0.02%)getPageNormal (402 samples, 0.02%)readDbPage (353 samples, 0.02%)unixRead (352 samples, 0.02%)pread (350 samples, 0.02%)sqlite3BtreeIndexMoveto (587 samples, 0.03%)sqlite3BtreeInsert (994 samples, 0.05%)sqlite3BtreeTableMoveto (832 samples, 0.04%)releaseMemArray (198 samples, 0.01%)sqlite3VdbeHalt (346 samples, 0.02%)sqlite3Malloc (213 samples, 0.01%)enlargeAndAppend (278 samples, 0.01%)sqlite3StrAccumEnlarge (260 samples, 0.01%)sqlite3_str_appendf (353 samples, 0.02%)sqlite3_str_vappendf (335 samples, 0.02%)sqlite3VdbeExec (6,345 samples, 0.33%)strftimeFunc (568 samples, 0.03%)rusqlite::statement::Statement::execute_with_bound_parameters (6,429 samples, 0.34%)sqlite3_step (6,414 samples, 0.34%)core::ptr::drop_in_place<rusqlite::row::Rows> (213 samples, 0.01%)sqlite3_reset (208 samples, 0.01%)sqlite3VdbeReset (203 samples, 0.01%)pcache1Fetch (322 samples, 0.02%)unixRead (567 samples, 0.03%)pread (567 samples, 0.03%)readDbPage (570 samples, 0.03%)getPageNormal (905 samples, 0.05%)getPageMMap (1,029 samples, 0.05%)getAndInitPage (1,065 samples, 0.06%)sqlite3BtreeIndexMoveto (3,217 samples, 0.17%)sqlite3VdbeRecordCompareWithSkip (1,100 samples, 0.06%)_platform_memcmp (282 samples, 0.01%)getPageNormal (409 samples, 0.02%)readDbPage (278 samples, 0.01%)unixRead (277 samples, 0.01%)pread (277 samples, 0.01%)getPageMMap (475 samples, 0.02%)getAndInitPage (533 samples, 0.03%)moveToChild (551 samples, 0.03%)sqlite3VdbeFinishMoveto (1,370 samples, 0.07%)sqlite3BtreeTableMoveto (1,368 samples, 0.07%)sqlite3VdbeExec (4,997 samples, 0.26%)rusqlite::row::Rows::get_expected_row (5,029 samples, 0.26%)sqlite3_step (5,021 samples, 0.26%)rusqlite::statement::Statement::query_row (5,475 samples, 0.29%)unixWrite (4,485 samples, 0.24%)pwrite (4,479 samples, 0.24%)pagerWalFrames (5,284 samples, 0.28%)walWriteOneFrame (5,187 samples, 0.27%)walEncodeFrame (700 samples, 0.04%)walChecksumBytes (697 samples, 0.04%)sqlite3BtreeCommitPhaseOne (5,399 samples, 0.28%)sqlite3PagerCommitPhaseOne (5,399 samples, 0.28%)sqlite3VdbeExec (5,421 samples, 0.28%)sqlite3VdbeHalt (5,420 samples, 0.28%)vdbeCommit (5,420 samples, 0.28%)unixRead (589 samples, 0.03%)pread (587 samples, 0.03%)rusqlite::Connection::execute_batch (8,251 samples, 0.43%)sqlite3_step (8,248 samples, 0.43%)sqlite3WalDefaultHook (2,826 samples, 0.15%)sqlite3_wal_checkpoint_v2 (2,826 samples, 0.15%)sqlite3BtreeCheckpoint (2,826 samples, 0.15%)sqlite3WalCheckpoint (2,826 samples, 0.15%)unixWrite (2,063 samples, 0.11%)pwrite (2,062 samples, 0.11%)rusqlite::transaction::Transaction::commit (8,252 samples, 0.43%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (23,289 samples, 1.22%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (463,384 samples, 24.36%)<torii_erc20::sink::Erc20Sink as torii:..sqlite3SelectPrep (234 samples, 0.01%)sqlite3WalkSelect (227 samples, 0.01%)sqlite3WhereBegin (192 samples, 0.01%)sqlite3Select (780 samples, 0.04%)sqlite3RunParser (1,250 samples, 0.07%)yy_reduce (1,051 samples, 0.06%)sqlite3LockAndPrepare (1,320 samples, 0.07%)sqlite3Prepare (1,310 samples, 0.07%)rusqlite::inner_connection::InnerConnection::prepare (1,363 samples, 0.07%)pcache1Unpin (197 samples, 0.01%)allocateCursor (305 samples, 0.02%)sqlite3VdbeFreeCursorNN (263 samples, 0.01%)btreeReleaseAllCursorPages (257 samples, 0.01%)unixRead (1,057 samples, 0.06%)pread (1,053 samples, 0.06%)readDbPage (1,106 samples, 0.06%)getPageNormal (1,260 samples, 0.07%)getPageMMap (1,262 samples, 0.07%)moveToChild (1,312 samples, 0.07%)getAndInitPage (1,303 samples, 0.07%)getPageNormal (312 samples, 0.02%)getPageMMap (316 samples, 0.02%)getAndInitPage (357 samples, 0.02%)btreeLast (1,688 samples, 0.09%)moveToRoot (364 samples, 0.02%)pcache1FetchStage2 (202 samples, 0.01%)pcache1Fetch (309 samples, 0.02%)unixRead (2,942 samples, 0.15%)pread (2,940 samples, 0.15%)readDbPage (3,006 samples, 0.16%)getPageMMap (3,326 samples, 0.17%)getPageNormal (3,325 samples, 0.17%)getAndInitPage (3,348 samples, 0.18%)sqlite3BtreeIndexMoveto (3,876 samples, 0.20%)sqlite3VdbeRecordCompareWithSkip (233 samples, 0.01%)editPage (219 samples, 0.01%)unixRead (1,716 samples, 0.09%)pread (1,709 samples, 0.09%)readDbPage (1,735 samples, 0.09%)getPageNormal (1,917 samples, 0.10%)getPageMMap (1,922 samples, 0.10%)getAndInitPage (1,931 samples, 0.10%)balance (2,804 samples, 0.15%)_xzm_xzone_malloc_freelist_outlined (253 samples, 0.01%)sqlite3MemMalloc (328 samples, 0.02%)sqlite3Malloc (455 samples, 0.02%)pcache1Alloc (556 samples, 0.03%)pcache1FetchStage2 (633 samples, 0.03%)pcache1Fetch (1,043 samples, 0.05%)unixRead (8,189 samples, 0.43%)pread (8,115 samples, 0.43%)readDbPage (8,424 samples, 0.44%)walFindFrame (213 samples, 0.01%)getPageNormal (9,515 samples, 0.50%)getPageMMap (9,527 samples, 0.50%)getAndInitPage (9,604 samples, 0.50%)pcache1FetchStage2 (202 samples, 0.01%)pcache1Fetch (232 samples, 0.01%)_platform_memmove (282 samples, 0.01%)unixRead (311 samples, 0.02%)readDbPage (386 samples, 0.02%)getPageNormal (638 samples, 0.03%)getPageMMap (643 samples, 0.03%)getAndInitPage (686 samples, 0.04%)moveToRoot (714 samples, 0.04%)_platform_memcmp (447 samples, 0.02%)sqlite3BtreeIndexMoveto (11,631 samples, 0.61%)sqlite3VdbeRecordCompareWithSkip (871 samples, 0.05%)sqlite3BtreeInsert (15,029 samples, 0.79%)sqlite3BtreeOpen (303 samples, 0.02%)unixRead (499 samples, 0.03%)pread (495 samples, 0.03%)getPageNormal (605 samples, 0.03%)readDbPage (523 samples, 0.03%)getPageMMap (642 samples, 0.03%)getAndInitPage (656 samples, 0.03%)moveToChild (667 samples, 0.04%)sqlite3BtreeTableMoveto (803 samples, 0.04%)pcache1Free (447 samples, 0.02%)pcache1Unpin (531 samples, 0.03%)btreeReleaseAllCursorPages (631 samples, 0.03%)_xzm_free_outlined (583 samples, 0.03%)pcache1Free (1,094 samples, 0.06%)pcache1EnforceMaxPage (1,512 samples, 0.08%)pcache1Destroy (1,559 samples, 0.08%)sqlite3BtreeClose (1,859 samples, 0.10%)sqlite3PagerClose (1,692 samples, 0.09%)sqlite3VdbeHalt (2,596 samples, 0.14%)sqlite3VdbeFreeCursorNN (2,526 samples, 0.13%)sqlite3VdbeExec (25,896 samples, 1.36%)rusqlite::statement::Statement::execute_with_bound_parameters (25,957 samples, 1.36%)sqlite3_step (25,941 samples, 1.36%)rusqlite::statement::Statement::execute (26,156 samples, 1.38%)unixRead (807 samples, 0.04%)pread (806 samples, 0.04%)readDbPage (829 samples, 0.04%)getPageNormal (916 samples, 0.05%)getPageMMap (920 samples, 0.05%)getAndInitPage (931 samples, 0.05%)moveToChild (944 samples, 0.05%)readDbPage (193 samples, 0.01%)getPageNormal (264 samples, 0.01%)getPageMMap (266 samples, 0.01%)btreeLast (1,253 samples, 0.07%)moveToRoot (302 samples, 0.02%)getAndInitPage (292 samples, 0.02%)sqlite3MemMalloc (196 samples, 0.01%)sqlite3Malloc (268 samples, 0.01%)pcache1Alloc (302 samples, 0.02%)pcache1FetchStage2 (343 samples, 0.02%)pcache1Fetch (500 samples, 0.03%)unixRead (5,826 samples, 0.31%)pread (5,703 samples, 0.30%)readDbPage (5,956 samples, 0.31%)getPageNormal (6,483 samples, 0.34%)getPageMMap (6,489 samples, 0.34%)getAndInitPage (6,522 samples, 0.34%)getPageMMap (261 samples, 0.01%)getPageNormal (260 samples, 0.01%)readDbPage (194 samples, 0.01%)moveToRoot (281 samples, 0.01%)getAndInitPage (279 samples, 0.01%)sqlite3BtreeIndexMoveto (7,192 samples, 0.38%)editPage (264 samples, 0.01%)unixRead (1,923 samples, 0.10%)pread (1,864 samples, 0.10%)getPageMMap (2,129 samples, 0.11%)getPageNormal (2,125 samples, 0.11%)readDbPage (1,954 samples, 0.10%)getAndInitPage (2,145 samples, 0.11%)balance (3,211 samples, 0.17%)_xzm_xzone_malloc_freelist_outlined (216 samples, 0.01%)sqlite3MemMalloc (292 samples, 0.02%)sqlite3Malloc (408 samples, 0.02%)pcache1Alloc (477 samples, 0.03%)pcache1FetchStage2 (548 samples, 0.03%)pcache1Fetch (839 samples, 0.04%)unixRead (6,861 samples, 0.36%)pread (6,833 samples, 0.36%)readDbPage (7,067 samples, 0.37%)getPageNormal (7,949 samples, 0.42%)getPageMMap (7,965 samples, 0.42%)getAndInitPage (8,034 samples, 0.42%)sqlite3Malloc (193 samples, 0.01%)pcache1Alloc (224 samples, 0.01%)pcache1FetchStage2 (275 samples, 0.01%)pcache1Fetch (319 samples, 0.02%)_platform_memmove (450 samples, 0.02%)unixRead (490 samples, 0.03%)readDbPage (592 samples, 0.03%)getPageNormal (942 samples, 0.05%)getPageMMap (949 samples, 0.05%)getAndInitPage (1,026 samples, 0.05%)moveToRoot (1,042 samples, 0.05%)sqlite3VdbeRecordCompareWithSkip (936 samples, 0.05%)_platform_memcmp (475 samples, 0.02%)sqlite3BtreeIndexMoveto (10,530 samples, 0.55%)sqlite3BtreeInsert (14,236 samples, 0.75%)sqlite3MemSize (228 samples, 0.01%)xzm_malloc_zone_size (205 samples, 0.01%)pcache1Free (650 samples, 0.03%)pcache1Unpin (762 samples, 0.04%)btreeReleaseAllCursorPages (881 samples, 0.05%)sqlite3VdbeHalt (984 samples, 0.05%)sqlite3VdbeFreeCursorNN (923 samples, 0.05%)sqlite3VdbeExec (24,399 samples, 1.28%)rusqlite::statement::Statement::execute_with_bound_parameters (24,436 samples, 1.28%)sqlite3_step (24,426 samples, 1.28%)fcntl (332 samples, 0.02%)__fcntl (331 samples, 0.02%)unixShmLock (343 samples, 0.02%)btreeBeginTrans (431 samples, 0.02%)sqlite3PagerSharedLock (380 samples, 0.02%)walTryBeginRead (375 samples, 0.02%)pcache1Alloc (208 samples, 0.01%)pcache1FetchStage2 (233 samples, 0.01%)pcache1Fetch (379 samples, 0.02%)unixRead (2,932 samples, 0.15%)pread (2,930 samples, 0.15%)readDbPage (2,986 samples, 0.16%)getPageNormal (3,387 samples, 0.18%)getPageMMap (3,461 samples, 0.18%)getAndInitPage (3,483 samples, 0.18%)unixRead (535 samples, 0.03%)pread (535 samples, 0.03%)readDbPage (552 samples, 0.03%)getPageNormal (655 samples, 0.03%)moveToRoot (691 samples, 0.04%)getAndInitPage (688 samples, 0.04%)getPageMMap (672 samples, 0.04%)sqlite3BtreeIndexMoveto (4,518 samples, 0.24%)sqlite3VdbeRecordCompareWithSkip (203 samples, 0.01%)<rusqlite::row::Rows as fallible_streaming_iterator::FallibleStreamingIterator>::advance (5,068 samples, 0.27%)sqlite3_step (5,064 samples, 0.27%)sqlite3VdbeExec (5,057 samples, 0.27%)fcntl (345 samples, 0.02%)__fcntl (343 samples, 0.02%)sqlite3VdbeHalt (626 samples, 0.03%)vdbeCommit (403 samples, 0.02%)sqlite3BtreeCommitPhaseTwo (388 samples, 0.02%)pager_unlock (372 samples, 0.02%)unixShmLock (368 samples, 0.02%)core::ptr::drop_in_place<rusqlite::row::Rows> (641 samples, 0.03%)sqlite3_reset (636 samples, 0.03%)sqlite3VdbeReset (632 samples, 0.03%)rusqlite::statement::Statement::query_row (5,804 samples, 0.31%)unixWrite (19,989 samples, 1.05%)pwrite (19,969 samples, 1.05%)pagerWalFrames (23,226 samples, 1.22%)walWriteOneFrame (23,046 samples, 1.21%)walEncodeFrame (3,041 samples, 0.16%)walChecksumBytes (3,026 samples, 0.16%)sqlite3PcacheDirtyList (696 samples, 0.04%)sqlite3BtreeCommitPhaseOne (24,062 samples, 1.27%)sqlite3PagerCommitPhaseOne (24,061 samples, 1.26%)sqlite3VdbeExec (24,092 samples, 1.27%)sqlite3VdbeHalt (24,092 samples, 1.27%)vdbeCommit (24,089 samples, 1.27%)unixRead (3,062 samples, 0.16%)pread (3,060 samples, 0.16%)unixSync (639 samples, 0.03%)fsync (639 samples, 0.03%)sqlite3WalCheckpoint (14,422 samples, 0.76%)unixWrite (10,336 samples, 0.54%)pwrite (10,322 samples, 0.54%)rusqlite::transaction::Transaction::commit (38,540 samples, 2.03%)r..rusqlite::Connection::execute_batch (38,538 samples, 2.03%)r..sqlite3_step (38,528 samples, 2.03%)s..sqlite3WalDefaultHook (14,435 samples, 0.76%)sqlite3_wal_checkpoint_v2 (14,435 samples, 0.76%)sqlite3BtreeCheckpoint (14,433 samples, 0.76%)torii::etl::decoder::DecoderId::new (401 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (235 samples, 0.01%)<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (97,547 samples, 5.13%)<torii..<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (561,787 samples, 29.53%)<torii::etl::sink::multi::MultiSink as torii::et.._xzm_free (776 samples, 0.04%)core::hash::BuildHasher::hash_one (272 samples, 0.01%)DYLD-STUB$$free (306 samples, 0.02%)_free (863 samples, 0.05%)_xzm_free (3,159 samples, 0.17%)_platform_memset (496 samples, 0.03%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (5,051 samples, 0.27%)hashbrown::map::HashMap<K,V,S,A>::insert (3,102 samples, 0.16%)core::hash::BuildHasher::hash_one (2,191 samples, 0.12%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1,492 samples, 0.08%)torii::run::_{{closure}}::_{{closure}} (1,239,531 samples, 65.17%)torii::run::_{{closure}}::_{{closure}}torii_common::token_uri::TokenUriService::run::_{{closure}} (253 samples, 0.01%)<alloc::collections::btree::map::BTreeMap<K,V,A> as core::ops::drop::Drop>::drop (228 samples, 0.01%)core::ptr::drop_in_place<alloc::collections::btree::map::IntoIter<alloc::string::String,serde_json::value::Value>> (224 samples, 0.01%)sqlite3GetToken (319 samples, 0.02%)sqlite3GenerateRowDelete (229 samples, 0.01%)whereLoopAddBtree (287 samples, 0.02%)whereLoopAddAll (299 samples, 0.02%)sqlite3WhereBegin (668 samples, 0.04%)sqlite3DeleteFrom (1,137 samples, 0.06%)sqlite3Update (393 samples, 0.02%)sqlite3GenerateConstraintChecks (699 samples, 0.04%)sqlite3Insert (1,462 samples, 0.08%)sqlite3RunParser (3,925 samples, 0.21%)yy_reduce (3,226 samples, 0.17%)sqlite3LockAndPrepare (4,002 samples, 0.21%)sqlite3Prepare (3,998 samples, 0.21%)rusqlite::inner_connection::InnerConnection::prepare (4,016 samples, 0.21%)fcntl (546 samples, 0.03%)__fcntl (540 samples, 0.03%)unixShmLock (585 samples, 0.03%)sqlite3PagerSharedLock (644 samples, 0.03%)walTryBeginRead (632 samples, 0.03%)btreeBeginTrans (848 samples, 0.04%)unixRead (480 samples, 0.03%)pread (471 samples, 0.02%)readDbPage (523 samples, 0.03%)getPageMMap (687 samples, 0.04%)getPageNormal (686 samples, 0.04%)moveToChild (707 samples, 0.04%)getAndInitPage (702 samples, 0.04%)unixRead (404 samples, 0.02%)pread (399 samples, 0.02%)getPageMMap (506 samples, 0.03%)getPageNormal (506 samples, 0.03%)readDbPage (426 samples, 0.02%)btreeLast (1,238 samples, 0.07%)moveToRoot (528 samples, 0.03%)getAndInitPage (521 samples, 0.03%)pcache1FetchStage2 (217 samples, 0.01%)pcache1Fetch (392 samples, 0.02%)unixRead (4,484 samples, 0.24%)pread (4,481 samples, 0.24%)readDbPage (4,567 samples, 0.24%)getPageNormal (4,974 samples, 0.26%)getPageMMap (5,033 samples, 0.26%)getAndInitPage (5,048 samples, 0.27%)unixRead (444 samples, 0.02%)pread (444 samples, 0.02%)getPageNormal (548 samples, 0.03%)readDbPage (463 samples, 0.02%)moveToRoot (575 samples, 0.03%)getAndInitPage (572 samples, 0.03%)getPageMMap (568 samples, 0.03%)sqlite3BtreeIndexMoveto (5,960 samples, 0.31%)sqlite3VdbeRecordCompareWithSkip (230 samples, 0.01%)balance (401 samples, 0.02%)unixRead (404 samples, 0.02%)pread (402 samples, 0.02%)readDbPage (429 samples, 0.02%)getAndInitPage (564 samples, 0.03%)getPageMMap (554 samples, 0.03%)getPageNormal (553 samples, 0.03%)unixRead (199 samples, 0.01%)pread (199 samples, 0.01%)moveToRoot (272 samples, 0.01%)getAndInitPage (272 samples, 0.01%)getPageMMap (269 samples, 0.01%)getPageNormal (269 samples, 0.01%)readDbPage (215 samples, 0.01%)sqlite3BtreeIndexMoveto (965 samples, 0.05%)sqlite3BtreeInsert (1,505 samples, 0.08%)pcache1Free (233 samples, 0.01%)pcache1Unpin (283 samples, 0.01%)btreeReleaseAllCursorPages (320 samples, 0.02%)sqlite3VdbeHalt (426 samples, 0.02%)sqlite3VdbeFreeCursorNN (351 samples, 0.02%)rusqlite::statement::Statement::execute_with_bound_parameters (10,644 samples, 0.56%)sqlite3_step (10,616 samples, 0.56%)sqlite3VdbeExec (10,598 samples, 0.56%)rusqlite::Connection::execute (14,990 samples, 0.79%)sqlite3RunParser (202 samples, 0.01%)sqlite3LockAndPrepare (257 samples, 0.01%)sqlite3Prepare (248 samples, 0.01%)rusqlite::Connection::execute_batch (396 samples, 0.02%)rusqlite::statement::Statement::bind_parameter (263 samples, 0.01%)pcache1Alloc (216 samples, 0.01%)pcache1FetchStage2 (265 samples, 0.01%)pcache1Fetch (391 samples, 0.02%)unixRead (1,905 samples, 0.10%)pread (1,895 samples, 0.10%)readDbPage (2,027 samples, 0.11%)getPageNormal (2,434 samples, 0.13%)getPageMMap (2,439 samples, 0.13%)getAndInitPage (2,501 samples, 0.13%)moveToChild (2,524 samples, 0.13%)unixRead (972 samples, 0.05%)pread (969 samples, 0.05%)getPageNormal (1,201 samples, 0.06%)readDbPage (1,021 samples, 0.05%)getPageMMap (1,202 samples, 0.06%)getAndInitPage (1,230 samples, 0.06%)btreeLast (3,782 samples, 0.20%)moveToRoot (1,241 samples, 0.07%)sqlite3BtreeBeginStmt (201 samples, 0.01%)pagerOpenSavepoint (192 samples, 0.01%)sqlite3Malloc (298 samples, 0.02%)pcache1Alloc (389 samples, 0.02%)pcache1FetchStage2 (492 samples, 0.03%)pcache1Fetch (726 samples, 0.04%)unixRead (3,445 samples, 0.18%)pread (3,432 samples, 0.18%)readDbPage (3,590 samples, 0.19%)getPageNormal (4,366 samples, 0.23%)getPageMMap (4,502 samples, 0.24%)getAndInitPage (4,560 samples, 0.24%)pcache1Alloc (197 samples, 0.01%)pcache1FetchStage2 (241 samples, 0.01%)pcache1Fetch (295 samples, 0.02%)unixRead (1,686 samples, 0.09%)pread (1,682 samples, 0.09%)readDbPage (1,754 samples, 0.09%)getPageNormal (2,070 samples, 0.11%)getPageMMap (2,116 samples, 0.11%)getAndInitPage (2,138 samples, 0.11%)moveToRoot (2,152 samples, 0.11%)sqlite3BtreeIndexMoveto (8,038 samples, 0.42%)sqlite3VdbeRecordCompareWithSkip (892 samples, 0.05%)_platform_memcmp (316 samples, 0.02%)_platform_memmove (219 samples, 0.01%)editPage (325 samples, 0.02%)pcache1Fetch (325 samples, 0.02%)unixRead (2,824 samples, 0.15%)pread (2,821 samples, 0.15%)getPageNormal (3,207 samples, 0.17%)readDbPage (2,863 samples, 0.15%)getPageMMap (3,210 samples, 0.17%)getAndInitPage (3,233 samples, 0.17%)sqlite3Malloc (243 samples, 0.01%)memjrnlWrite (480 samples, 0.03%)pager_write (528 samples, 0.03%)subjournalPageIfRequired (508 samples, 0.03%)memjrnlWrite (238 samples, 0.01%)balance (5,604 samples, 0.29%)subjournalPageIfRequired (256 samples, 0.01%)_platform_memmove (293 samples, 0.02%)sqlite3MemMalloc (275 samples, 0.01%)sqlite3Malloc (574 samples, 0.03%)memjrnlWrite (1,012 samples, 0.05%)pager_write (1,119 samples, 0.06%)subjournalPageIfRequired (1,101 samples, 0.06%)_xzm_xzone_malloc_freelist_outlined (275 samples, 0.01%)sqlite3MemMalloc (388 samples, 0.02%)sqlite3Malloc (608 samples, 0.03%)pcache1Alloc (748 samples, 0.04%)pcache1FetchStage2 (993 samples, 0.05%)pcache1Fetch (1,931 samples, 0.10%)unixRead (7,183 samples, 0.38%)pread (7,163 samples, 0.38%)readDbPage (7,639 samples, 0.40%)walFindFrame (431 samples, 0.02%)getPageNormal (9,636 samples, 0.51%)getPageMMap (9,649 samples, 0.51%)getAndInitPage (9,763 samples, 0.51%)pcache1Alloc (243 samples, 0.01%)pcache1FetchStage2 (325 samples, 0.02%)pcache1Fetch (430 samples, 0.02%)unixRead (2,391 samples, 0.13%)pread (2,382 samples, 0.13%)readDbPage (2,521 samples, 0.13%)getPageNormal (2,977 samples, 0.16%)getPageMMap (2,989 samples, 0.16%)getAndInitPage (3,015 samples, 0.16%)moveToRoot (3,033 samples, 0.16%)sqlite3VdbeRecordCompareWithSkip (1,199 samples, 0.06%)_platform_memcmp (522 samples, 0.03%)sqlite3BtreeIndexMoveto (15,730 samples, 0.83%)vdbeRecordCompareString (1,248 samples, 0.07%)_platform_memcmp (905 samples, 0.05%)_platform_memmove (270 samples, 0.01%)sqlite3MemMalloc (227 samples, 0.01%)sqlite3Malloc (463 samples, 0.02%)memjrnlWrite (830 samples, 0.04%)subjournalPageIfRequired (884 samples, 0.05%)sqlite3BtreeInsert (24,154 samples, 1.27%)pcache1Unpin (234 samples, 0.01%)btreeReleaseAllCursorPages (293 samples, 0.02%)sqlite3VdbeFreeCursorNN (313 samples, 0.02%)_xzm_free_outlined (204 samples, 0.01%)sqlite3MemSize (354 samples, 0.02%)xzm_malloc_zone_size (312 samples, 0.02%)pcache1Free (1,103 samples, 0.06%)pcache1Unpin (1,349 samples, 0.07%)btreeReleaseAllCursorPages (1,574 samples, 0.08%)sqlite3VdbeFreeCursorNN (1,642 samples, 0.09%)_xzm_free (452 samples, 0.02%)_platform_memset (213 samples, 0.01%)sqlite3MemSize (214 samples, 0.01%)memjrnlTruncate (1,044 samples, 0.05%)sqlite3BtreeSavepoint (1,169 samples, 0.06%)sqlite3PagerSavepoint (1,155 samples, 0.06%)sqlite3VdbeHalt (2,986 samples, 0.16%)vdbeCloseStatement (1,191 samples, 0.06%)sqlite3VdbeExec (40,372 samples, 2.12%)s..rusqlite::statement::Statement::execute_with_bound_parameters (40,435 samples, 2.13%)r..sqlite3_step (40,419 samples, 2.12%)s..rusqlite::statement::Statement::execute (40,728 samples, 2.14%)r..walIndexAppend (216 samples, 0.01%)unixWrite (21,662 samples, 1.14%)pwrite (21,637 samples, 1.14%)pagerWalFrames (24,467 samples, 1.29%)walWriteOneFrame (24,141 samples, 1.27%)walEncodeFrame (2,459 samples, 0.13%)walChecksumBytes (2,443 samples, 0.13%)pcache1Unpin (225 samples, 0.01%)sqlite3PcacheCleanAll (271 samples, 0.01%)sqlite3PcacheDirtyList (277 samples, 0.01%)sqlite3PagerCommitPhaseOne (25,034 samples, 1.32%)sqlite3BtreeCommitPhaseOne (25,041 samples, 1.32%)fcntl (206 samples, 0.01%)__fcntl (204 samples, 0.01%)pager_end_transaction (295 samples, 0.02%)unixShmLock (226 samples, 0.01%)sqlite3BtreeCommitPhaseTwo (438 samples, 0.02%)sqlite3VdbeExec (25,560 samples, 1.34%)sqlite3VdbeHalt (25,543 samples, 1.34%)vdbeCommit (25,521 samples, 1.34%)unixRead (2,474 samples, 0.13%)pread (2,465 samples, 0.13%)unixSync (567 samples, 0.03%)fsync (566 samples, 0.03%)sqlite3WalCheckpoint (11,742 samples, 0.62%)unixWrite (8,362 samples, 0.44%)pwrite (8,355 samples, 0.44%)rusqlite::Connection::execute_batch (37,457 samples, 1.97%)r..sqlite3_step (37,323 samples, 1.96%)s..sqlite3WalDefaultHook (11,747 samples, 0.62%)sqlite3_wal_checkpoint_v2 (11,747 samples, 0.62%)sqlite3BtreeCheckpoint (11,747 samples, 0.62%)rusqlite::transaction::Transaction::commit (37,464 samples, 1.97%)r..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (322 samples, 0.02%)serde_json::de::from_str (593 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (586 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (568 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (472 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (347 samples, 0.02%)<torii_erc721::storage::Erc721Storage as torii_common::token_uri::TokenUriStore>::store_token_uri::_{{closure}} (94,924 samples, 4.99%)<torii..__psynch_cvsignal (301 samples, 0.02%)pthread_cond_signal (308 samples, 0.02%)parking_lot::condvar::Condvar::notify_one_slow (381 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (466 samples, 0.02%)tokio::runtime::context::with_scheduler (465 samples, 0.02%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (521 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (482 samples, 0.03%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (290 samples, 0.02%)tokio::sync::semaphore::Semaphore::acquire::_{{closure}} (349 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (219 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (227 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (260 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (245 samples, 0.01%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (239 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (286 samples, 0.02%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (918 samples, 0.05%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (773 samples, 0.04%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (942 samples, 0.05%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (1,342 samples, 0.07%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (232 samples, 0.01%)core::fmt::write (210 samples, 0.01%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (193 samples, 0.01%)alloc::fmt::format::format_inner (341 samples, 0.02%)core::fmt::write (332 samples, 0.02%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (316 samples, 0.02%)core::fmt::write (236 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (411 samples, 0.02%)<deduplicated_symbol> (427 samples, 0.02%)<starknet_core::types::codegen::CallRequestRef as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequestRef as serde_core::ser::Serialize>::serialize::Field0>::serialize (609 samples, 0.03%)<starknet_core::types::codegen::CallRequestRef as serde_core::ser::Serialize>::serialize (647 samples, 0.03%)core::ptr::drop_in_place<reqwest::async_impl::client::Pending> (225 samples, 0.01%)<reqwest::redirect::TowerRedirectPolicy as tower_http::follow_redirect::policy::Policy<reqwest::async_impl::body::Body,reqwest::error::Error>>::on_request (243 samples, 0.01%)reqwest::async_impl::request::RequestBuilder::send (741 samples, 0.04%)reqwest::async_impl::client::Client::execute_request (730 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (927 samples, 0.05%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (802 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (451 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (951 samples, 0.05%)starknet_types_core::felt::Felt::from_hex (939 samples, 0.05%)<starknet_providers::jsonrpc::_::<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::FeltArray>::deserialize::__Visitor as serde_core::de::Visitor>::visit_newtype_struct (999 samples, 0.05%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (994 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1,020 samples, 0.05%)serde_json::de::from_str (1,486 samples, 0.08%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (1,480 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (392 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (337 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (5,553 samples, 0.29%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::call::_{{closure}} (5,645 samples, 0.30%)starknet_core::utils::parse_cairo_short_string (228 samples, 0.01%)torii_common::metadata::MetadataFetcher::decode_string_result (432 samples, 0.02%)torii_common::token_uri::fetch_token_uri_with_retry::_{{closure}} (6,181 samples, 0.32%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (328 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (660 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (471 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (357 samples, 0.02%)serde_json::de::from_trait (681 samples, 0.04%)serde_json::value::de::_<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize (680 samples, 0.04%)serde_core::ser::Serializer::collect_seq (207 samples, 0.01%)serde_json::value::ser::_<impl serde_core::ser::Serialize for serde_json::value::Value>::serialize (197 samples, 0.01%)serde_core::ser::SerializeMap::serialize_entry (325 samples, 0.02%)serde_json::value::ser::_<impl serde_core::ser::Serialize for serde_json::value::Value>::serialize (287 samples, 0.02%)serde_json::ser::to_vec (354 samples, 0.02%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (203 samples, 0.01%)std::sys::net::connection::socket::TcpStream::peer_addr (198 samples, 0.01%)__getpeername (192 samples, 0.01%)hyper_util::client::legacy::connect::http::_<impl hyper_util::client::legacy::connect::Connection for tokio::net::tcp::stream::TcpStream>::connected (321 samples, 0.02%)<T as futures_util::fns::FnOnce1<A>>::call_once (377 samples, 0.02%)<futures_util::fns::MapOkFn<F> as futures_util::fns::FnOnce1<core::result::Result<T,E>>>::call_once (388 samples, 0.02%)socket2::socket::Socket::new (437 samples, 0.02%)socket (370 samples, 0.02%)hyper_util::client::legacy::connect::http::connect (531 samples, 0.03%)socket2::socket::Socket::connect (2,780 samples, 0.15%)__connect (2,778 samples, 0.15%)<core::pin::Pin<P> as core::future::future::Future>::poll (3,498 samples, 0.18%)socket2::socket::Socket::new (1,630 samples, 0.09%)socket (1,400 samples, 0.07%)socket2::sys::set_tcp_keepalive (199 samples, 0.01%)setsockopt (192 samples, 0.01%)hyper_util::client::legacy::connect::http::connect (2,076 samples, 0.11%)std::net::tcp::TcpStream::set_nodelay (197 samples, 0.01%)setsockopt (194 samples, 0.01%)socket2::socket::Socket::connect (10,567 samples, 0.56%)__connect (10,558 samples, 0.56%)std::os::unix::net::stream::UnixStream::take_error (249 samples, 0.01%)getsockopt (238 samples, 0.01%)mio::sys::unix::selector::Selector::register (216 samples, 0.01%)kevent (214 samples, 0.01%)tokio::net::tcp::stream::TcpStream::new (274 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::new_with_interest (272 samples, 0.01%)tokio::runtime::io::registration::Registration::new_with_interest_and_handle (264 samples, 0.01%)tokio::runtime::io::driver::Handle::add_source (263 samples, 0.01%)tokio::net::tcp::socket::TcpSocket::connect::_{{closure}} (11,132 samples, 0.59%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (17,478 samples, 0.92%)__recvfrom (6,458 samples, 0.34%)<&std::net::tcp::TcpStream as std::io::Read>::read (6,495 samples, 0.34%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (6,504 samples, 0.34%)tokio::io::poll_evented::PollEvented<E>::poll_read (6,619 samples, 0.35%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (6,660 samples, 0.35%)security_framework::secure_transport::read_func (6,708 samples, 0.35%)tls_record_decrypt (265 samples, 0.01%)SSLRecordReadInternal (7,206 samples, 0.38%)__sendto (4,369 samples, 0.23%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4,383 samples, 0.23%)<&std::net::tcp::TcpStream as std::io::Write>::write (4,377 samples, 0.23%)security_framework::secure_transport::write_func (4,413 samples, 0.23%)tokio::io::poll_evented::PollEvented<E>::poll_write (4,410 samples, 0.23%)SSLRecordServiceWriteQueueInternal (4,467 samples, 0.23%)tls1GenerateKeyMaterial (386 samples, 0.02%)tls_handshake_internal_prf (380 samples, 0.02%)tlsPHash (379 samples, 0.02%)SSLInitPendingCiphers (562 samples, 0.03%)SSLEncodeFinishedMessage (273 samples, 0.01%)tls12ComputeFinishedMac (250 samples, 0.01%)tls_handshake_internal_prf (209 samples, 0.01%)tlsPHash (197 samples, 0.01%)ccec_affinify_x_only_ws (884 samples, 0.05%)ccn_p256_inv_asm_ws (875 samples, 0.05%)ccn_mulmod_p256 (871 samples, 0.05%)ccec_full_add_default_ws (358 samples, 0.02%)ccn_cond_add (330 samples, 0.02%)ccn_mulmod_p256 (5,339 samples, 0.28%)ccn_mux (381 samples, 0.02%)ccn_sub_asm (234 samples, 0.01%)cczp_add_default_ws (985 samples, 0.05%)ccn_cond_add (2,115 samples, 0.11%)ccn_mux_next_mask (283 samples, 0.01%)ccn_sub_asm (1,086 samples, 0.06%)cczp_n (351 samples, 0.02%)cczp_sub_default_ws (3,716 samples, 0.20%)ccec_mult_XYCZaddC_ws (11,167 samples, 0.59%)cczp_sub_ws (296 samples, 0.02%)ccn_mulmod_p256 (4,129 samples, 0.22%)ccn_cond_add (1,595 samples, 0.08%)ccn_mux_next_mask (208 samples, 0.01%)ccn_sub_asm (734 samples, 0.04%)cczp_n (208 samples, 0.01%)cczp_sub_default_ws (2,691 samples, 0.14%)ccec_mult_XYCZadd_ws (7,464 samples, 0.39%)ccn_cond_rsub (275 samples, 0.01%)ccn_cond_swap (430 samples, 0.02%)cczp_cond_negate (202 samples, 0.01%)cczp_sub_default_ws (408 samples, 0.02%)ccec_mult_default_ws (20,790 samples, 1.09%)ccec_mult_blinded_ws (21,102 samples, 1.11%)ccecdh_compute_shared_secret_ws (22,172 samples, 1.17%)ccecdh_compute_shared_secret (22,228 samples, 1.17%)ccn_p256_inv_asm_ws (886 samples, 0.05%)ccn_mulmod_p256 (870 samples, 0.05%)ccec_affinify_jacobian_ws (912 samples, 0.05%)ccec_full_add_default_ws (356 samples, 0.02%)ccn_cond_add (280 samples, 0.01%)ccn_mulmod_p256 (5,383 samples, 0.28%)ccn_mux (431 samples, 0.02%)ccn_sub_asm (218 samples, 0.01%)cczp_add_default_ws (1,012 samples, 0.05%)ccn_cond_add (2,082 samples, 0.11%)ccn_mux_next_mask (249 samples, 0.01%)ccn_sub_asm (1,092 samples, 0.06%)cczp_n (364 samples, 0.02%)cczp_sub_default_ws (3,740 samples, 0.20%)ccec_mult_XYCZaddC_ws (11,182 samples, 0.59%)cczp_sub_ws (283 samples, 0.01%)ccn_mulmod_p256 (4,264 samples, 0.22%)ccn_cond_add (1,649 samples, 0.09%)ccn_mux_next_mask (215 samples, 0.01%)ccn_sub_asm (720 samples, 0.04%)cczp_n (214 samples, 0.01%)cczp_sub_default_ws (2,739 samples, 0.14%)ccec_mult_XYCZadd_ws (7,721 samples, 0.41%)cczp_sub_ws (191 samples, 0.01%)ccn_cond_rsub (306 samples, 0.02%)ccn_cond_swap (449 samples, 0.02%)cczp_cond_negate (221 samples, 0.01%)cczp_sub_default_ws (458 samples, 0.02%)ccec_mult_default_ws (21,308 samples, 1.12%)ccec_mult_blinded_ws (21,679 samples, 1.14%)ccec_make_pub_from_priv_ws (22,708 samples, 1.19%)ccec_generate_key_internal_fips_ws (22,891 samples, 1.20%)ccn_mulmod_p256 (837 samples, 0.04%)ccn_p256_inv_asm_ws (854 samples, 0.04%)ccec_affinify_x_only_ws (863 samples, 0.05%)ccec_full_add_default_ws (307 samples, 0.02%)ccn_cond_add (283 samples, 0.01%)ccn_mulmod_p256 (5,149 samples, 0.27%)ccn_mux (376 samples, 0.02%)ccn_sub_asm (240 samples, 0.01%)cczp_add_default_ws (965 samples, 0.05%)ccn_cond_add (1,960 samples, 0.10%)ccn_mux_next_mask (266 samples, 0.01%)ccn_sub_asm (1,121 samples, 0.06%)cczp_n (357 samples, 0.02%)cczp_sub_default_ws (3,630 samples, 0.19%)ccec_mult_XYCZaddC_ws (10,785 samples, 0.57%)cczp_sub_ws (274 samples, 0.01%)ccn_mulmod_p256 (4,255 samples, 0.22%)ccn_cond_add (1,578 samples, 0.08%)ccn_mux_next_mask (205 samples, 0.01%)ccn_sub_asm (791 samples, 0.04%)cczp_n (207 samples, 0.01%)cczp_sub_default_ws (2,736 samples, 0.14%)ccec_mult_XYCZadd_ws (7,682 samples, 0.40%)ccn_cond_rsub (250 samples, 0.01%)ccn_cond_swap (444 samples, 0.02%)cczp_cond_negate (195 samples, 0.01%)cczp_sub_default_ws (467 samples, 0.02%)ccec_mult_default_ws (20,649 samples, 1.09%)ccec_mult_blinded_ws (20,986 samples, 1.10%)ccn_gcd_update_ws (320 samples, 0.02%)cczp_inv_update_redc_ws (316 samples, 0.02%)cczp_inv_default_ws (1,336 samples, 0.07%)ccec_sign_internal_inner_ws (23,350 samples, 1.23%)ccec_sign_internal_ws (23,547 samples, 1.24%)ccec_sign_composite_ws (23,562 samples, 1.24%)ccec_sign_composite_msg_ws (23,624 samples, 1.24%)ccn_mulmod_p256 (856 samples, 0.05%)ccn_p256_inv_asm_ws (867 samples, 0.05%)ccec_affinify_x_only_ws (877 samples, 0.05%)cc_ws_alloc (222 samples, 0.01%)ccn_mulmod_p256 (4,374 samples, 0.23%)cc_ws_alloc (300 samples, 0.02%)cc_try_abort_if (296 samples, 0.02%)ccn_add_asm (888 samples, 0.05%)ccn_mux (1,516 samples, 0.08%)ccn_sub_asm (1,044 samples, 0.05%)cczp_n (263 samples, 0.01%)cczp_add_default_ws (4,369 samples, 0.23%)cczp_add_ws (210 samples, 0.01%)ccn_cond_add (1,085 samples, 0.06%)ccn_sub_asm (470 samples, 0.02%)cczp_sub_default_ws (1,776 samples, 0.09%)ccec_double_ws (11,393 samples, 0.60%)ccn_mulmod_p256 (1,452 samples, 0.08%)cczp_add_default_ws (238 samples, 0.01%)ccn_cond_add (434 samples, 0.02%)ccn_sub_asm (227 samples, 0.01%)cczp_sub_default_ws (764 samples, 0.04%)ccec_add_normalized_ws (2,862 samples, 0.15%)ccec_full_add_normalized_ws (3,011 samples, 0.16%)ccn_mulmod_p256 (1,547 samples, 0.08%)cczp_add_default_ws (408 samples, 0.02%)ccn_cond_add (328 samples, 0.02%)cczp_sub_default_ws (591 samples, 0.03%)ccec_add_normalized_ws (2,935 samples, 0.15%)ccec_full_sub_normalized_ws (3,062 samples, 0.16%)ccn_p256_inv_asm_ws (880 samples, 0.05%)ccn_mulmod_p256 (873 samples, 0.05%)ccn_recode_jsf_column (472 samples, 0.02%)ccec_twin_mult_ws (19,632 samples, 1.03%)ccn_gcd_update_ws (294 samples, 0.02%)cczp_inv_update_redc_ws (286 samples, 0.02%)cczp_inv_default_ws (1,262 samples, 0.07%)ccec_verify_internal_with_base_ws (21,934 samples, 1.15%)ccec_verify_composite_msg_ws (21,990 samples, 1.16%)ccec_verify_composite_digest_ws (21,948 samples, 1.15%)ccec_generate_key_fips_ws (68,540 samples, 3.60%)ccec..ccec_pairwise_consistency_check_ws (45,629 samples, 2.40%)cc..sslEcdhCreateKey (68,616 samples, 3.61%)sslE..ccec_generate_key (68,576 samples, 3.61%)ccec..SSLEncodeKeyExchange (91,078 samples, 4.79%)SSLEnc..SSLPrepareAndQueueMessage (91,534 samples, 4.81%)SSLPre..SSLSendFlight (242 samples, 0.01%)tls_handshake_write_callback (218 samples, 0.01%)SSLRecordWriteInternal (217 samples, 0.01%)tls12GenerateMasterSecret (471 samples, 0.02%)tls_handshake_internal_prf (395 samples, 0.02%)tlsPHash (381 samples, 0.02%)tls_handshake_continue (92,850 samples, 4.88%)tls_ha..SSLAdvanceHandshake (92,835 samples, 4.88%)SSLAdv..AccelerateCrypto_SHA512_compress_hwassist (603 samples, 0.03%)ccdigest_update_internal (648 samples, 0.03%)ccdigest_update (715 samples, 0.04%)HashSHA512Update (720 samples, 0.04%)-[OS_xpc_object dealloc] (197 samples, 0.01%)_asl_msg_to_xpc (296 samples, 0.02%)mach_msg2_internal (785 samples, 0.04%)mach_msg2_trap (784 samples, 0.04%)_xpc_pipe_mach_msg (801 samples, 0.04%)mach_msg (793 samples, 0.04%)mach_msg_overwrite (791 samples, 0.04%)_xpc_pipe_routine (1,107 samples, 0.06%)_asl_mt_shim_send_message (1,648 samples, 0.09%)mach_msg (536 samples, 0.03%)mach_msg_overwrite (536 samples, 0.03%)mach_msg2_internal (534 samples, 0.03%)mach_msg2_trap (534 samples, 0.03%)_asl_server_message (540 samples, 0.03%)asl_string_append_no_encoding_len (275 samples, 0.01%)asl_msg_to_string_raw (499 samples, 0.03%)asl_string_new (280 samples, 0.01%)_asl_send_message (3,091 samples, 0.16%)_asl_lib_vlog (3,104 samples, 0.16%)asl_log (3,205 samples, 0.17%)tls_metric_event_add_string (3,401 samples, 0.18%)_asl_mt_shim_send_message (223 samples, 0.01%)_asl_send_message (428 samples, 0.02%)tls_metric_event_done (450 samples, 0.02%)asl_log (445 samples, 0.02%)_asl_lib_vlog (433 samples, 0.02%)SSLAdvanceHandshake (4,196 samples, 0.22%)tls_metric_client_finished (4,041 samples, 0.21%)SSLProcessFinished (415 samples, 0.02%)tls12ComputeFinishedMac (379 samples, 0.02%)tls_handshake_internal_prf (297 samples, 0.02%)tlsPHash (277 samples, 0.01%)ccn_mulmod_p256 (907 samples, 0.05%)ccn_mux (304 samples, 0.02%)ccn_sub_asm (195 samples, 0.01%)cczp_add_default_ws (851 samples, 0.04%)ccn_cond_add (206 samples, 0.01%)cczp_sub_default_ws (366 samples, 0.02%)ccec_double_ws (2,283 samples, 0.12%)ccn_mulmod_p256 (276 samples, 0.01%)ccec_add_normalized_ws (541 samples, 0.03%)ccec_full_add_normalized_ws (565 samples, 0.03%)ccn_mulmod_p256 (305 samples, 0.02%)ccec_add_normalized_ws (562 samples, 0.03%)ccec_full_sub_normalized_ws (586 samples, 0.03%)ccec_twin_mult_ws (3,826 samples, 0.20%)cczp_inv_default_ws (275 samples, 0.01%)ccec_verify_internal_with_base_ws (4,309 samples, 0.23%)ccec_verify_digest_ws (4,319 samples, 0.23%)sslRawVerify (4,326 samples, 0.23%)ccec_verify (4,325 samples, 0.23%)cczp_mm_to_ws (259 samples, 0.01%)ccn_mul (313 samples, 0.02%)cczp_mm_mul_ws (484 samples, 0.03%)ccn_addmul1_asm (626 samples, 0.03%)ccn_sqr_ws (760 samples, 0.04%)ccn_addmul1_asm (1,302 samples, 0.07%)cczp_mm_redc_ws (1,417 samples, 0.07%)cczp_mm_sqr_ws (2,252 samples, 0.12%)ccrsa_pub_crypt_ws (3,122 samples, 0.16%)cczp_power_fast_ws (2,752 samples, 0.14%)ccrsa_verify_pkcs1v15_internal_ws (3,235 samples, 0.17%)ccrsa_verify_pkcs1v15 (3,322 samples, 0.17%)SSLVerifySignedServerKeyExchangeTls12 (7,775 samples, 0.41%)sslRsaVerify (3,327 samples, 0.17%)SSLProcessServerKeyExchange (7,806 samples, 0.41%)SSLProcessHandshakeMessage (8,554 samples, 0.45%)AccelerateCrypto_SHA1_compress (372 samples, 0.02%)ccdigest_update_internal (456 samples, 0.02%)ccdigest_update (555 samples, 0.03%)HashSHA1Update (579 samples, 0.03%)AccelerateCrypto_SHA256_compress (360 samples, 0.02%)ccdigest_update_internal (413 samples, 0.02%)ccdigest_update (474 samples, 0.02%)HashSHA256Update (477 samples, 0.03%)AccelerateCrypto_SHA512_compress_hwassist (595 samples, 0.03%)ccdigest_update_internal (663 samples, 0.03%)ccdigest_update (705 samples, 0.04%)HashSHA384Update (710 samples, 0.04%)SSLUpdateHandshakeMacs (1,776 samples, 0.09%)-[__NSArrayM dealloc] (206 samples, 0.01%)CSSM_CL_CertAbortCache (266 samples, 0.01%)Security::KeychainCore::Certificate::~Certificate() (502 samples, 0.03%)Security::KeychainCore::Certificate::~Certificate() (505 samples, 0.03%)Security::CFClass::refCountForType(long, void const*) (532 samples, 0.03%)_CFRelease (629 samples, 0.03%)SecCertificateDestroy (917 samples, 0.05%)_CFRelease (987 samples, 0.05%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (1,017 samples, 0.05%)-[__NSArrayM dealloc] (1,025 samples, 0.05%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (278 samples, 0.01%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (290 samples, 0.02%)SecECKeyCopyPublicBits (308 samples, 0.02%)SecKeyCopyPublicBytes (303 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (326 samples, 0.02%)cssm_WrapKey(long, unsigned long long, cssm_context const*, cssm_access_credentials const*, cssm_key const*, cssm_data const*, cssm_key*, unsigned long long) (199 samples, 0.01%)CSSM_WrapKey (213 samples, 0.01%)Security::CssmClient::WrapKey::operator()(Security::CssmClient::Key&, Security::CssmData const*) (225 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (452 samples, 0.02%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (465 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (943 samples, 0.05%)SecECKeyGetNamedCurve (1,058 samples, 0.06%)SecKeyCopyAttributes (992 samples, 0.05%)-[__NSDictionaryM __setObject:forKey:] (327 samples, 0.02%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (630 samples, 0.03%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (632 samples, 0.03%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (662 samples, 0.03%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (1,818 samples, 0.10%)SecKeyCopyExponent (1,959 samples, 0.10%)-[__NSDictionaryM __setObject:forKey:] (523 samples, 0.03%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (654 samples, 0.03%)CSSM_ModuleAttach (242 samples, 0.01%)Security::CssmClient::AttachmentImpl::activate() (269 samples, 0.01%)Security::CssmClient::Crypt::activate() (472 samples, 0.02%)Security::CssmClient::WrapKey::activate() (485 samples, 0.03%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (1,205 samples, 0.06%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (1,262 samples, 0.07%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (2,751 samples, 0.14%)SecKeyCopyModulus (2,931 samples, 0.15%)Security::KeychainCore::Certificate::Certificate(cssm_data const&, unsigned int, unsigned int) (271 samples, 0.01%)SecCertificateCreateItemImplInstance (442 samples, 0.02%)feePubKeyInitFromECDSAPubBlob (191 samples, 0.01%)CryptKit::rawCssmKeyToFee(Security::CssmKey const&) (239 samples, 0.01%)CryptKit::FEEKeyInfoProvider::QueryKeySizeInBits(cssm_key_size&) (243 samples, 0.01%)RSAKeyInfoProvider::QueryKeySizeInBits(cssm_key_size&) (306 samples, 0.02%)rawCssmKeyToRsa (214 samples, 0.01%)AppleCSPSession::getKeySize(Security::CssmKey const&, cssm_key_size&) (567 samples, 0.03%)cssm_QueryKeySizeInBits(long, unsigned long long, cssm_context const*, cssm_key const*, cssm_key_size*) (646 samples, 0.03%)CSSM_QueryKeySizeInBits (745 samples, 0.04%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (1,003 samples, 0.05%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (1,026 samples, 0.05%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (1,125 samples, 0.06%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (1,188 samples, 0.06%)CSSM_CL_CertGetFirstCachedFieldValue (1,249 samples, 0.07%)DecodedExtensions::addExtension(cssm_data const&, bool, void*, bool, SecAsn1Template_struct const*, cssm_data const*) (214 samples, 0.01%)SEC_ASN1DecoderUpdate (350 samples, 0.02%)SEC_ASN1Decode (571 samples, 0.03%)DecodedExtensions::decodeFromNss(NSS_CertExtension**) (952 samples, 0.05%)SEC_ASN1DecoderUpdate (211 samples, 0.01%)SEC_ASN1DecoderUpdate (972 samples, 0.05%)SEC_ASN1DecoderUpdate (1,484 samples, 0.08%)SEC_ASN1Decode (1,700 samples, 0.09%)DecodedCert::DecodedCert(AppleX509CLSession&, Security::CssmData const&) (2,677 samples, 0.14%)AppleX509CLSession::CertCache(Security::CssmData const&, long&) (2,712 samples, 0.14%)cssm_CertCache(long, cssm_data const*, long*) (2,791 samples, 0.15%)CSSM_CL_CertCache (2,915 samples, 0.15%)Security::KeychainCore::Certificate::certHandle() (2,955 samples, 0.16%)Attachment::Attachment(Module*, cssm_version const&, unsigned int, unsigned int, cssm_memory_funcs const&, unsigned int, unsigned int) (303 samples, 0.02%)StandardAttachmentMaker<8u, cssm_spi_cl_funcs, &CLNameTable>::make(Module*, cssm_version const&, unsigned int, unsigned int, cssm_memory_funcs const&, unsigned int, unsigned int, cssm_func_name_addr*, unsigned int) (329 samples, 0.02%)CSSM_ModuleAttach (494 samples, 0.03%)Security::CssmClient::AttachmentImpl::activate() (544 samples, 0.03%)Security::KeychainCore::Certificate::clHandle() (558 samples, 0.03%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (4,929 samples, 0.26%)Security::KeychainCore::Certificate::publicKey() (5,278 samples, 0.28%)SecCertificateCopyPublicKey$LEGACYMAC (6,257 samples, 0.33%)SecTrustCopyPublicKey (6,292 samples, 0.33%)-[__NSDictionaryM __setObject:forKey:] (208 samples, 0.01%)SecPolicyAddBasicCertOptions (350 samples, 0.02%)SecPolicyAddBasicX509Options (412 samples, 0.02%)SecPolicyCreateBasicX509 (670 samples, 0.04%)SecTrustCreateWithCertificates (885 samples, 0.05%)CSSM_ModuleDetach (191 samples, 0.01%)Security::CssmClient::AttachmentImpl::deactivate() (202 samples, 0.01%)Security::CssmClient::CSPImpl::~CSPImpl() (213 samples, 0.01%)Security::CssmClient::AttachmentImpl::~AttachmentImpl() (211 samples, 0.01%)Security::RefPointer<Security::CssmClient::ObjectImpl>::release_internal() (220 samples, 0.01%)Security::RefPointer<Security::CssmClient::ObjectImpl>::~RefPointer() (222 samples, 0.01%)Security::CssmClient::ObjectImpl::~ObjectImpl() (226 samples, 0.01%)Security::RefPointer<Security::CssmClient::ObjectImpl>::release_internal() (368 samples, 0.02%)Security::CssmClient::KeyImpl::~KeyImpl() (363 samples, 0.02%)Security::CssmClient::KeyImpl::~KeyImpl() (363 samples, 0.02%)Security::KeychainCore::KeyItem::~KeyItem() (435 samples, 0.02%)Security::KeychainCore::KeyItem::~KeyItem() (384 samples, 0.02%)Security::RefPointer<Security::CssmClient::ObjectImpl>::~RefPointer() (377 samples, 0.02%)SecCDSAKeyDestroy(__SecKey*) (512 samples, 0.03%)SecTrustDestroy (222 samples, 0.01%)_CFRelease (792 samples, 0.04%)ccn_cond_add (373 samples, 0.02%)ccn_divmod_ws (672 samples, 0.04%)sslGetPubKeyFromBits (897 samples, 0.05%)ccrsa_init_pub (815 samples, 0.04%)cczp_mm_init_ws (761 samples, 0.04%)cczp_init_ws (741 samples, 0.04%)__CFBasicHashRehash (278 samples, 0.01%)__CFBasicHashAddValue (395 samples, 0.02%)CFBasicHashAddValue (620 samples, 0.03%)CFBasicHashGetCountOfKey (390 samples, 0.02%)___CFBasicHashFindBucket_Linear (363 samples, 0.02%)CFSetContainsValue (419 samples, 0.02%)DERDecodeSeqNext (202 samples, 0.01%)DERParseSequenceContentToObject (384 samples, 0.02%)_CFURLCreateWithURLString (446 samples, 0.02%)CFURLCreateWithBytes (654 samples, 0.03%)SecCEPAuthorityInfoAccess (889 samples, 0.05%)_CFURLCreateWithURLString (290 samples, 0.02%)CFURLCreateWithBytes (442 samples, 0.02%)SecCEPCrlDistributionPoints (618 samples, 0.03%)parseGeneralNamesContent (573 samples, 0.03%)appendCRLDPFromGeneralNames (556 samples, 0.03%)__CFBasicHashDrain (214 samples, 0.01%)_CFRelease (265 samples, 0.01%)__CFDataInit (292 samples, 0.02%)createNormalizedX501Name (569 samples, 0.03%)SecCertificateParse (5,146 samples, 0.27%)SecCertificateCreateWithData (5,583 samples, 0.29%)tls_handshake_message_callback (22,273 samples, 1.17%)tls_helper_set_peer_pubkey (22,255 samples, 1.17%)tls_helper_create_cfarray_from_certificates (5,901 samples, 0.31%)SecPolicyAddBasicX509Options (286 samples, 0.02%)SecPolicyAddBasicCertOptions (234 samples, 0.01%)add_element (216 samples, 0.01%)add_eku (388 samples, 0.02%)SecPolicyCreateSSL_internal (1,573 samples, 0.08%)set_ssl_ekus (448 samples, 0.02%)__CFBasicHashRehash (199 samples, 0.01%)__CFBasicHashAddValue (319 samples, 0.02%)CFBasicHashAddValue (558 samples, 0.03%)___CFBasicHashFindBucket_Linear (194 samples, 0.01%)CFBasicHashGetCountOfKey (374 samples, 0.02%)___CFBasicHashFindBucket_Linear (337 samples, 0.02%)CFSetContainsValue (395 samples, 0.02%)DERParseSequenceContentToObject (284 samples, 0.01%)_CFURLCreateWithURLString (388 samples, 0.02%)CFURLCreateWithBytes (556 samples, 0.03%)SecCEPAuthorityInfoAccess (717 samples, 0.04%)_CFURLCreateWithURLString (210 samples, 0.01%)CFURLCreateWithBytes (303 samples, 0.02%)SecCEPCrlDistributionPoints (426 samples, 0.02%)parseGeneralNamesContent (385 samples, 0.02%)appendCRLDPFromGeneralNames (380 samples, 0.02%)__CFBasicHashDrain (210 samples, 0.01%)_CFRelease (261 samples, 0.01%)__CFDataInit (270 samples, 0.01%)createNormalizedX501Name (447 samples, 0.02%)SecCertificateParse (4,273 samples, 0.22%)SecCertificateCreateWithData (4,545 samples, 0.24%)sslCreateSecTrust (6,727 samples, 0.35%)tls_helper_create_peer_trust (6,716 samples, 0.35%)tls_helper_create_cfarray_from_certificates (4,727 samples, 0.25%)SSLProcessHandshakeRecordInner (44,283 samples, 2.33%)S..tls_verify_peer_cert (6,739 samples, 0.35%)tls_handshake_process (44,517 samples, 2.34%)t..SSLHandshakeProceed (149,164 samples, 7.84%)SSLHandshak..SSLHandshake (149,215 samples, 7.84%)SSLHandshake-[__NSDictionaryM dealloc] (208 samples, 0.01%)cow_cleanup (200 samples, 0.01%)_CFRelease (227 samples, 0.01%)-[__NSSingleObjectArrayI dealloc] (239 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (250 samples, 0.01%)_dispatch_client_callout (250 samples, 0.01%)__SecTrustSetPolicies_block_invoke (250 samples, 0.01%)SecTrustSetPolicies (282 samples, 0.01%)SecPolicyAddBasicX509Options (209 samples, 0.01%)add_element (195 samples, 0.01%)add_eku (319 samples, 0.02%)SecPolicyCreateSSL_internal (1,119 samples, 0.06%)set_ssl_ekus (346 samples, 0.02%)security_framework::policy::SecPolicy::create_ssl (1,153 samples, 0.06%)_dispatch_root_queue_poke_slow (362 samples, 0.02%)_pthread_workqueue_addthreads (355 samples, 0.02%)__workq_kernreturn (353 samples, 0.02%)-[OS_dispatch_data dealloc] (430 samples, 0.02%)-[OS_xpc_object dealloc] (655 samples, 0.03%)_xpc_array_dispose (689 samples, 0.04%)-[OS_xpc_object dealloc] (759 samples, 0.04%)_xpc_dictionary_node_free (836 samples, 0.04%)_xpc_dictionary_dispose (895 samples, 0.05%)-[OS_xpc_object dealloc] (936 samples, 0.05%)_xpc_array_dispose (949 samples, 0.05%)-[OS_xpc_object dealloc] (1,061 samples, 0.06%)_xpc_array_dispose (1,086 samples, 0.06%)-[OS_xpc_object dealloc] (1,150 samples, 0.06%)_xpc_dictionary_node_free (1,184 samples, 0.06%)_xpc_dictionary_dispose (1,462 samples, 0.08%)-[OS_xpc_object dealloc] (1,501 samples, 0.08%)xpc_array_set_data (205 samples, 0.01%)SecXPCDictionarySetCertificates (292 samples, 0.02%)_dispatch_root_queue_poke_slow (548 samples, 0.03%)_pthread_workqueue_addthreads (545 samples, 0.03%)__workq_kernreturn (541 samples, 0.03%)_CFDataCreateDispatchData (721 samples, 0.04%)dispatch_data_create (658 samples, 0.03%)_CFXPCCreateXPCObjectFromCFObject (1,119 samples, 0.06%)_CFXPCCreateXPCObjectFromCFObject (1,418 samples, 0.07%)_xpc_dictionary_insert (374 samples, 0.02%)__CFXPCDictionaryApplier (2,049 samples, 0.11%)-[__NSDictionaryM __apply:context:] (2,205 samples, 0.12%)_CFXPCCreateXPCObjectFromCFObject (2,355 samples, 0.12%)SecXPCDictionarySetPolicies (2,561 samples, 0.13%)__handle_trust_evaluate_xpc_block_invoke (3,038 samples, 0.16%)der_decode_plist (360 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (397 samples, 0.02%)SecXPCDictionaryCopyArray (410 samples, 0.02%)SecXPCDictionaryCopyArrayOptional (506 samples, 0.03%)__CFBasicHashAddValue (246 samples, 0.01%)CFBasicHashAddValue (440 samples, 0.02%)CFBasicHashGetCountOfKey (358 samples, 0.02%)___CFBasicHashFindBucket_Linear (330 samples, 0.02%)CFSetContainsValue (382 samples, 0.02%)DERParseSequenceContentToObject (314 samples, 0.02%)_CFURLCreateWithURLString (281 samples, 0.01%)CFURLCreateWithBytes (390 samples, 0.02%)SecCEPAuthorityInfoAccess (514 samples, 0.03%)CFURLCreateWithBytes (220 samples, 0.01%)SecCEPCrlDistributionPoints (318 samples, 0.02%)parseGeneralNamesContent (289 samples, 0.02%)appendCRLDPFromGeneralNames (280 samples, 0.01%)_CFRelease (211 samples, 0.01%)__CFDataInit (225 samples, 0.01%)createNormalizedX501Name (443 samples, 0.02%)SecCertificateParse (3,653 samples, 0.19%)SecCertificateCreateWithBytes (3,840 samples, 0.20%)SecCertificateCreateWithXPCArrayAtIndex (3,880 samples, 0.20%)_xpc_dictionary_unpack_value_and_vend (200 samples, 0.01%)_xpc_dictionary_unpack_value (192 samples, 0.01%)_xpc_dictionary_look_up (224 samples, 0.01%)SecXPCDictionaryCopyChainOptional (4,177 samples, 0.22%)specialized static DateComponents._conditionallyBridgeFromObjectiveC(_:result:) (380 samples, 0.02%)static DateComponents._unconditionallyBridgeFromObjectiveC(_:) (485 samples, 0.03%)@objc _NSSwiftCalendar._date(from:) (686 samples, 0.04%)CFCalendarComposeAbsoluteTime (1,012 samples, 0.05%)_dispatch_lane_barrier_sync_invoke_and_complete (1,021 samples, 0.05%)_dispatch_client_callout (1,018 samples, 0.05%)__SecGregorianDateGetAbsoluteTime_block_invoke (1,016 samples, 0.05%)SecCFCalendarDoWithZuluCalendar (1,037 samples, 0.05%)der_decode_commontime_body (1,082 samples, 0.06%)der_decode_date (1,129 samples, 0.06%)der_decode_plist (1,333 samples, 0.07%)der_decode_dictionary (1,576 samples, 0.08%)der_decode_plist (1,581 samples, 0.08%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (1,597 samples, 0.08%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (1,605 samples, 0.08%)SecXPCDictionaryCopyDictionaryOptional (1,664 samples, 0.09%)__handle_trust_evaluate_xpc_block_invoke_2 (6,388 samples, 0.34%)_xpc_dictionary_serialize_apply (393 samples, 0.02%)_xpc_dictionary_apply_node_f (418 samples, 0.02%)_xpc_dictionary_serialize (424 samples, 0.02%)_xpc_array_serialize (443 samples, 0.02%)_xpc_array_serialize (549 samples, 0.03%)_xpc_dictionary_apply_node_f (647 samples, 0.03%)_xpc_dictionary_serialize_apply (638 samples, 0.03%)_xpc_dictionary_serialize (669 samples, 0.04%)_xpc_dictionary_apply_f_apply (204 samples, 0.01%)_xpc_serializer_pack (1,187 samples, 0.06%)xpc_dictionary_apply_f (222 samples, 0.01%)_xpc_dictionary_apply_node_f (221 samples, 0.01%)_xpc_connection_pack_message (1,202 samples, 0.06%)_dispatch_mach_msg_send (1,374 samples, 0.07%)mach_msg2_internal (1,347 samples, 0.07%)mach_msg2_trap (1,343 samples, 0.07%)_dispatch_mach_send_drain (1,395 samples, 0.07%)_dispatch_mach_send_msg (1,431 samples, 0.08%)dispatch_mach_send_with_result_and_wait_for_reply (2,369 samples, 0.12%)_dispatch_mach_send_and_wait_for_reply (2,355 samples, 0.12%)mach_msg (635 samples, 0.03%)mach_msg_overwrite (629 samples, 0.03%)mach_msg2_internal (619 samples, 0.03%)mach_msg2_trap (617 samples, 0.03%)security_fw_send_message_with_reply_sync_inner (3,944 samples, 0.21%)xpc_connection_send_message_with_reply_sync (3,915 samples, 0.21%)__CFStringAppendFormatCore (194 samples, 0.01%)CFStringCreateWithFormatAndArguments (293 samples, 0.02%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (285 samples, 0.01%)SecCFCreateErrorWithFormatAndArguments (513 samples, 0.03%)SecError (514 samples, 0.03%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (533 samples, 0.03%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (536 samples, 0.03%)securityd_message_is_for_system_keychain (678 samples, 0.04%)securityd_message_with_reply_sync (749 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_3 (15,796 samples, 0.83%)securityd_send_sync_and_do (15,785 samples, 0.83%)SecOSStatusWith (15,813 samples, 0.83%)__SecTrustEvaluateIfNecessary_block_invoke_2 (15,882 samples, 0.83%)_os_activity_initiate_impl (16,033 samples, 0.84%)_dispatch_lane_barrier_sync_invoke_and_complete (16,051 samples, 0.84%)_dispatch_client_callout (16,049 samples, 0.84%)__SecTrustEvaluateIfNecessary_block_invoke (16,044 samples, 0.84%)SecTrustEvaluateIfNecessary (16,100 samples, 0.85%)security_framework::trust::SecTrust::evaluate_with_error (16,122 samples, 0.85%)SecTrustEvaluateInternal (16,120 samples, 0.85%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (166,965 samples, 8.78%)native_tls::..security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (166,947 samples, 8.78%)security_fra..<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (167,069 samples, 8.78%)<tokio_nativ..tls_handshake_ciphersuite_is_allowed (278 samples, 0.01%)tls_handshake_ciphersuite_is_supported (283 samples, 0.01%)tls_handshake_set_ciphersuites_internal (630 samples, 0.03%)tls_handshake_create_for_caller (799 samples, 0.04%)SSLCreateContextWithRecordFuncsAndPath (906 samples, 0.05%)SSLCreateContext (1,100 samples, 0.06%)SSLSetEnabledCiphers (497 samples, 0.03%)tls_handshake_set_ciphersuites_internal (288 samples, 0.02%)security_framework::secure_transport::ClientBuilder::configure_ciphers (593 samples, 0.03%)__sendto (1,265 samples, 0.07%)<&std::net::tcp::TcpStream as std::io::Write>::write (1,271 samples, 0.07%)security_framework::secure_transport::write_func (1,282 samples, 0.07%)tokio::io::poll_evented::PollEvented<E>::poll_write (1,281 samples, 0.07%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1,277 samples, 0.07%)SSLRecordServiceWriteQueueInternal (1,302 samples, 0.07%)SSLHandshakeProceed (1,322 samples, 0.07%)SSLEncodeClientHello (586 samples, 0.03%)SSLPrepareAndQueueMessage (807 samples, 0.04%)SSLAdvanceHandshake (867 samples, 0.05%)SSLHandshake (2,422 samples, 0.13%)SSLHandshakeStart (1,089 samples, 0.06%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (2,434 samples, 0.13%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (4,254 samples, 0.22%)native_tls::imp::TlsConnector::connect (4,242 samples, 0.22%)security_framework::secure_transport::ClientBuilder::handshake (4,209 samples, 0.22%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (188,942 samples, 9.93%)<hyper_tls::cl..<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (189,145 samples, 9.94%)<hyper_util::s..reqwest::connect::with_timeout::_{{closure}} (189,095 samples, 9.94%)reqwest::conne..reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (189,047 samples, 9.94%)reqwest::conne..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (189,168 samples, 9.95%)<futures_util:..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (189,593 samples, 9.97%)<futures_util:..hyper_util::client::legacy::client::Client<C,B>::connect_to::_{{closure}}::_{{closure}}::_{{closure}} (343 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (189,998 samples, 9.99%)<futures_util:..<hyper_util::client::legacy::pool::Checkout<T,K> as core::future::future::Future>::poll (314 samples, 0.02%)__psynch_cvsignal (527 samples, 0.03%)pthread_cond_signal (536 samples, 0.03%)parking_lot::raw_mutex::RawMutex::unlock_slow (580 samples, 0.03%)tokio::runtime::blocking::pool::Spawner::spawn_task (622 samples, 0.03%)tokio::runtime::blocking::pool::spawn_blocking (675 samples, 0.04%)<reqwest::dns::gai::GaiResolver as reqwest::dns::resolve::Resolve>::resolve::_{{closure}} (708 samples, 0.04%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (789 samples, 0.04%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (781 samples, 0.04%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (1,066 samples, 0.06%)reqwest::connect::with_timeout::_{{closure}} (934 samples, 0.05%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (921 samples, 0.05%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (1,069 samples, 0.06%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,069 samples, 0.06%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1,068 samples, 0.06%)<hyper_util::common::lazy::Lazy<F,R> as core::future::future::Future>::poll (1,118 samples, 0.06%)hyper_util::client::legacy::pool::PoolInner<T,K>::put (279 samples, 0.01%)<hyper_util::client::legacy::pool::Pooled<T,K> as core::ops::drop::Drop>::drop (308 samples, 0.02%)core::ptr::drop_in_place<hyper_util::client::legacy::pool::Pooled<hyper_util::client::legacy::client::PoolClient<reqwest::async_impl::body::Body>,(http::uri::scheme::Scheme,http::uri::authority::Authority)>> (314 samples, 0.02%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (192,533 samples, 10.12%)hyper_util::cli..<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (192,729 samples, 10.13%)<reqwest::async..<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (192,790 samples, 10.14%)<tower::retry::..socket2::socket::Socket::new (453 samples, 0.02%)socket (374 samples, 0.02%)hyper_util::client::legacy::connect::http::connect (571 samples, 0.03%)socket2::socket::Socket::connect (2,738 samples, 0.14%)__connect (2,736 samples, 0.14%)<core::pin::Pin<P> as core::future::future::Future>::poll (3,456 samples, 0.18%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (3,659 samples, 0.19%)__recvfrom (1,002 samples, 0.05%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,009 samples, 0.05%)<&std::net::tcp::TcpStream as std::io::Read>::read (1,006 samples, 0.05%)tokio::io::poll_evented::PollEvented<E>::poll_read (1,025 samples, 0.05%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (1,027 samples, 0.05%)security_framework::secure_transport::read_func (1,031 samples, 0.05%)SSLRecordReadInternal (1,115 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (890 samples, 0.05%)<&std::net::tcp::TcpStream as std::io::Write>::write (890 samples, 0.05%)__sendto (890 samples, 0.05%)security_framework::secure_transport::write_func (900 samples, 0.05%)tokio::io::poll_evented::PollEvented<E>::poll_write (896 samples, 0.05%)SSLRecordServiceWriteQueueInternal (911 samples, 0.05%)ccn_mulmod_p256 (954 samples, 0.05%)ccn_cond_add (377 samples, 0.02%)ccn_sub_asm (202 samples, 0.01%)cczp_sub_default_ws (676 samples, 0.04%)ccec_mult_XYCZaddC_ws (2,018 samples, 0.11%)ccn_mulmod_p256 (825 samples, 0.04%)ccn_cond_add (305 samples, 0.02%)cczp_sub_default_ws (505 samples, 0.03%)ccec_mult_XYCZadd_ws (1,432 samples, 0.08%)ccec_mult_default_ws (3,911 samples, 0.21%)ccec_mult_blinded_ws (3,971 samples, 0.21%)ccecdh_compute_shared_secret_ws (4,177 samples, 0.22%)ccecdh_compute_shared_secret (4,185 samples, 0.22%)ccn_mulmod_p256 (985 samples, 0.05%)cczp_add_default_ws (196 samples, 0.01%)ccn_cond_add (378 samples, 0.02%)ccn_sub_asm (226 samples, 0.01%)cczp_sub_default_ws (720 samples, 0.04%)ccec_mult_XYCZaddC_ws (2,117 samples, 0.11%)ccn_mulmod_p256 (829 samples, 0.04%)ccn_cond_add (336 samples, 0.02%)cczp_sub_default_ws (563 samples, 0.03%)ccec_mult_XYCZadd_ws (1,538 samples, 0.08%)ccec_mult_default_ws (4,128 samples, 0.22%)ccec_mult_blinded_ws (4,188 samples, 0.22%)ccec_make_pub_from_priv_ws (4,355 samples, 0.23%)ccec_generate_key_internal_fips_ws (4,390 samples, 0.23%)ccn_mulmod_p256 (1,030 samples, 0.05%)ccn_cond_add (403 samples, 0.02%)ccn_sub_asm (210 samples, 0.01%)cczp_sub_default_ws (708 samples, 0.04%)ccec_mult_XYCZaddC_ws (2,128 samples, 0.11%)ccn_mulmod_p256 (783 samples, 0.04%)ccn_cond_add (323 samples, 0.02%)cczp_sub_default_ws (516 samples, 0.03%)ccec_mult_XYCZadd_ws (1,431 samples, 0.08%)ccec_mult_default_ws (3,990 samples, 0.21%)ccec_mult_blinded_ws (4,055 samples, 0.21%)cczp_inv_default_ws (236 samples, 0.01%)ccec_sign_internal_inner_ws (4,496 samples, 0.24%)ccec_sign_internal_ws (4,541 samples, 0.24%)ccec_sign_composite_msg_ws (4,561 samples, 0.24%)ccec_sign_composite_ws (4,546 samples, 0.24%)ccn_mulmod_p256 (853 samples, 0.04%)ccn_mux (307 samples, 0.02%)cczp_add_default_ws (832 samples, 0.04%)ccn_cond_add (206 samples, 0.01%)cczp_sub_default_ws (360 samples, 0.02%)ccec_double_ws (2,200 samples, 0.12%)ccn_mulmod_p256 (292 samples, 0.02%)ccec_add_normalized_ws (546 samples, 0.03%)ccec_full_add_normalized_ws (572 samples, 0.03%)ccn_mulmod_p256 (296 samples, 0.02%)ccec_add_normalized_ws (565 samples, 0.03%)ccec_full_sub_normalized_ws (594 samples, 0.03%)ccec_twin_mult_ws (3,773 samples, 0.20%)cczp_inv_default_ws (248 samples, 0.01%)ccec_generate_key_fips_ws (13,181 samples, 0.69%)ccec_pairwise_consistency_check_ws (8,784 samples, 0.46%)ccec_verify_composite_msg_ws (4,218 samples, 0.22%)ccec_verify_composite_digest_ws (4,210 samples, 0.22%)ccec_verify_internal_with_base_ws (4,209 samples, 0.22%)sslEcdhCreateKey (13,194 samples, 0.69%)ccec_generate_key (13,187 samples, 0.69%)SSLEncodeKeyExchange (17,426 samples, 0.92%)SSLPrepareAndQueueMessage (17,512 samples, 0.92%)tls_handshake_continue (17,773 samples, 0.93%)SSLAdvanceHandshake (17,770 samples, 0.93%)_xpc_pipe_routine (221 samples, 0.01%)_asl_mt_shim_send_message (338 samples, 0.02%)asl_log (635 samples, 0.03%)_asl_lib_vlog (620 samples, 0.03%)_asl_send_message (620 samples, 0.03%)tls_metric_event_add_string (673 samples, 0.04%)SSLAdvanceHandshake (840 samples, 0.04%)tls_metric_client_finished (810 samples, 0.04%)ccn_mulmod_p256 (838 samples, 0.04%)ccn_mux (292 samples, 0.02%)ccn_sub_asm (202 samples, 0.01%)cczp_add_default_ws (837 samples, 0.04%)ccn_cond_add (208 samples, 0.01%)cczp_sub_default_ws (360 samples, 0.02%)ccec_double_ws (2,205 samples, 0.12%)ccn_mulmod_p256 (291 samples, 0.02%)ccec_add_normalized_ws (554 samples, 0.03%)ccec_full_add_normalized_ws (583 samples, 0.03%)ccn_mulmod_p256 (268 samples, 0.01%)ccec_add_normalized_ws (540 samples, 0.03%)ccec_full_sub_normalized_ws (571 samples, 0.03%)ccec_twin_mult_ws (3,792 samples, 0.20%)cczp_inv_default_ws (271 samples, 0.01%)ccec_verify_digest_ws (4,277 samples, 0.22%)ccec_verify_internal_with_base_ws (4,269 samples, 0.22%)SSLProcessHandshakeMessage (4,443 samples, 0.23%)SSLProcessServerKeyExchange (4,318 samples, 0.23%)SSLVerifySignedServerKeyExchangeTls12 (4,309 samples, 0.23%)sslRawVerify (4,288 samples, 0.23%)ccec_verify (4,286 samples, 0.23%)SSLUpdateHandshakeMacs (280 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (266 samples, 0.01%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (272 samples, 0.01%)SecECKeyCopyPublicBits (288 samples, 0.02%)SecKeyCopyPublicBytes (285 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (305 samples, 0.02%)CSSM_WrapKey (205 samples, 0.01%)Security::CssmClient::WrapKey::operator()(Security::CssmClient::Key&, Security::CssmData const*) (214 samples, 0.01%)SecCDSAKeyCopyExternalRepresentation(__SecKey*, __CFError**) (440 samples, 0.02%)SecCDSAKeyCopyPublicBytes(__SecKey*, __CFData const**) (457 samples, 0.02%)SecCDSAKeyCopyAttributeDictionary(__SecKey*) (950 samples, 0.05%)SecKeyCopyAttributes (985 samples, 0.05%)SecECKeyGetNamedCurve (1,034 samples, 0.05%)CryptKit::rawCssmKeyToFee(Security::CssmKey const&) (223 samples, 0.01%)CryptKit::FEEKeyInfoProvider::QueryKeySizeInBits(cssm_key_size&) (226 samples, 0.01%)AppleCSPSession::getKeySize(Security::CssmKey const&, cssm_key_size&) (247 samples, 0.01%)cssm_QueryKeySizeInBits(long, unsigned long long, cssm_context const*, cssm_key const*, cssm_key_size*) (265 samples, 0.01%)CSSM_QueryKeySizeInBits (279 samples, 0.01%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (373 samples, 0.02%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (394 samples, 0.02%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (375 samples, 0.02%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (405 samples, 0.02%)CSSM_CL_CertGetFirstCachedFieldValue (422 samples, 0.02%)DecodedExtensions::decodeFromNss(NSS_CertExtension**) (204 samples, 0.01%)SEC_ASN1DecoderUpdate (264 samples, 0.01%)SEC_ASN1Decode (307 samples, 0.02%)DecodedCert::DecodedCert(AppleX509CLSession&, Security::CssmData const&) (515 samples, 0.03%)AppleX509CLSession::CertCache(Security::CssmData const&, long&) (520 samples, 0.03%)cssm_CertCache(long, cssm_data const*, long*) (542 samples, 0.03%)CSSM_CL_CertCache (560 samples, 0.03%)Security::KeychainCore::Certificate::certHandle() (567 samples, 0.03%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (1,126 samples, 0.06%)Security::KeychainCore::Certificate::publicKey() (1,183 samples, 0.06%)SecCertificateCopyPublicKey$LEGACYMAC (1,347 samples, 0.07%)SecTrustCopyPublicKey (1,357 samples, 0.07%)SecCertificateParse (936 samples, 0.05%)SecCertificateCreateWithData (998 samples, 0.05%)tls_handshake_message_callback (4,243 samples, 0.22%)tls_helper_set_peer_pubkey (4,241 samples, 0.22%)tls_helper_create_cfarray_from_certificates (1,054 samples, 0.06%)SecPolicyCreateSSL_internal (289 samples, 0.02%)SecCertificateParse (700 samples, 0.04%)SecCertificateCreateWithData (740 samples, 0.04%)SSLProcessHandshakeRecordInner (11,045 samples, 0.58%)tls_verify_peer_cert (1,113 samples, 0.06%)sslCreateSecTrust (1,111 samples, 0.06%)tls_helper_create_peer_trust (1,107 samples, 0.06%)tls_helper_create_cfarray_from_certificates (766 samples, 0.04%)SSLHandshakeProceed (30,924 samples, 1.63%)tls_handshake_process (11,103 samples, 0.58%)SSLHandshake (30,931 samples, 1.63%)SecPolicyCreateSSL_internal (227 samples, 0.01%)security_framework::policy::SecPolicy::create_ssl (234 samples, 0.01%)_xpc_array_dispose (192 samples, 0.01%)-[OS_xpc_object dealloc] (202 samples, 0.01%)_xpc_dictionary_node_free (210 samples, 0.01%)_xpc_dictionary_dispose (264 samples, 0.01%)-[OS_xpc_object dealloc] (271 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (208 samples, 0.01%)_CFXPCCreateXPCObjectFromCFObject (257 samples, 0.01%)__CFXPCDictionaryApplier (358 samples, 0.02%)-[__NSDictionaryM __apply:context:] (393 samples, 0.02%)_CFXPCCreateXPCObjectFromCFObject (404 samples, 0.02%)SecXPCDictionarySetPolicies (447 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke (530 samples, 0.03%)SecCertificateParse (659 samples, 0.03%)SecCertificateCreateWithBytes (686 samples, 0.04%)SecCertificateCreateWithXPCArrayAtIndex (690 samples, 0.04%)SecXPCDictionaryCopyChainOptional (741 samples, 0.04%)_dispatch_lane_barrier_sync_invoke_and_complete (249 samples, 0.01%)_dispatch_client_callout (249 samples, 0.01%)__SecGregorianDateGetAbsoluteTime_block_invoke (246 samples, 0.01%)CFCalendarComposeAbsoluteTime (242 samples, 0.01%)SecCFCalendarDoWithZuluCalendar (252 samples, 0.01%)der_decode_commontime_body (266 samples, 0.01%)der_decode_date (280 samples, 0.01%)der_decode_plist (439 samples, 0.02%)der_decode_dictionary (439 samples, 0.02%)der_decode_plist (341 samples, 0.02%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (441 samples, 0.02%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (440 samples, 0.02%)SecXPCDictionaryCopyDictionaryOptional (460 samples, 0.02%)__handle_trust_evaluate_xpc_block_invoke_2 (1,319 samples, 0.07%)_xpc_connection_pack_message (215 samples, 0.01%)_xpc_serializer_pack (208 samples, 0.01%)_dispatch_mach_send_drain (263 samples, 0.01%)_dispatch_mach_msg_send (257 samples, 0.01%)mach_msg2_internal (248 samples, 0.01%)mach_msg2_trap (247 samples, 0.01%)_dispatch_mach_send_msg (270 samples, 0.01%)dispatch_mach_send_with_result_and_wait_for_reply (456 samples, 0.02%)_dispatch_mach_send_and_wait_for_reply (456 samples, 0.02%)security_fw_send_message_with_reply_sync_inner (739 samples, 0.04%)xpc_connection_send_message_with_reply_sync (736 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_3 (3,012 samples, 0.16%)securityd_send_sync_and_do (3,012 samples, 0.16%)SecOSStatusWith (3,015 samples, 0.16%)__SecTrustEvaluateIfNecessary_block_invoke_2 (3,027 samples, 0.16%)SecTrustEvaluateIfNecessary (3,055 samples, 0.16%)_dispatch_lane_barrier_sync_invoke_and_complete (3,048 samples, 0.16%)_dispatch_client_callout (3,048 samples, 0.16%)__SecTrustEvaluateIfNecessary_block_invoke (3,047 samples, 0.16%)_os_activity_initiate_impl (3,043 samples, 0.16%)security_framework::trust::SecTrust::evaluate_with_error (3,058 samples, 0.16%)SecTrustEvaluateInternal (3,058 samples, 0.16%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (34,334 samples, 1.81%)<..native_tls::imp::MidHandshakeTlsStream<S>::handshake (34,315 samples, 1.80%)n..security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (34,310 samples, 1.80%)s..SSLCreateContext (198 samples, 0.01%)__sendto (234 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (238 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (237 samples, 0.01%)SSLHandshakeProceed (249 samples, 0.01%)SSLRecordServiceWriteQueueInternal (248 samples, 0.01%)security_framework::secure_transport::write_func (244 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_write (242 samples, 0.01%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (472 samples, 0.02%)SSLHandshake (468 samples, 0.02%)SSLHandshakeStart (218 samples, 0.01%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (813 samples, 0.04%)native_tls::imp::TlsConnector::connect (809 samples, 0.04%)security_framework::secure_transport::ClientBuilder::handshake (803 samples, 0.04%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (38,833 samples, 2.04%)<..<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (38,868 samples, 2.04%)<..reqwest::connect::with_timeout::_{{closure}} (38,858 samples, 2.04%)r..reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (38,850 samples, 2.04%)r..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (38,872 samples, 2.04%)<..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (38,954 samples, 2.05%)<..<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (39,022 samples, 2.05%)<..<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (199 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (199 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (199 samples, 0.01%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (199 samples, 0.01%)<hyper_util::common::lazy::Lazy<F,R> as core::future::future::Future>::poll (209 samples, 0.01%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (39,484 samples, 2.08%)<..hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (39,448 samples, 2.07%)h..<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (39,492 samples, 2.08%)<..<tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (39,559 samples, 2.08%)<..url::parser::Parser::after_double_slash (192 samples, 0.01%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (233,437 samples, 12.27%)<reqwest::async_im..url::ParseOptions::parse (232 samples, 0.01%)url::parser::Parser::parse_url (225 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (238 samples, 0.01%)core::ptr::drop_in_place<core::cell::UnsafeCell<hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<reqwest::async_impl::body::Body>,(http::uri::scheme::Scheme,http::uri::authority::Authority)>>> (214 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (395 samples, 0.02%)core::ptr::drop_in_place<tower_http::follow_redirect::FollowRedirect<tower::retry::Retry<reqwest::retry::Policy,reqwest::async_impl::client::HyperService>,reqwest::redirect::TowerRedirectPolicy>> (298 samples, 0.02%)__psynch_cvsignal (260 samples, 0.01%)pthread_cond_signal (264 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (293 samples, 0.02%)tokio::runtime::context::with_scheduler (320 samples, 0.02%)core::ptr::drop_in_place<hyper::body::incoming::Incoming> (342 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (322 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (321 samples, 0.02%)core::ptr::drop_in_place<http_body_util::combinators::collect::Collect<http_body_util::combinators::box_body::BoxBody<bytes::bytes::Bytes,alloc::boxed::Box<dyn core::error::Error+core::marker::Send+core::marker::Sync>>>> (389 samples, 0.02%)core::ptr::drop_in_place<http_body_util::combinators::map_err::MapErr<reqwest::async_impl::body::TotalTimeoutBody<http_body_util::combinators::box_body::BoxBody<bytes::bytes::Bytes,alloc::boxed::Box<dyn core::error::Error+core::marker::Send+core::marker::Sync>>>,reqwest::async_impl::body::box_err<reqwest::error::Error>>> (379 samples, 0.02%)std::env::_var (214 samples, 0.01%)std::env::_var_os (213 samples, 0.01%)hyper_util::client::proxy::matcher::Builder::from_env (315 samples, 0.02%)mach_port_deallocate (630 samples, 0.03%)_kernelrpc_mach_port_deallocate_trap (623 samples, 0.03%)__SCDynamicStoreDeallocate (792 samples, 0.04%)_CFRelease (822 samples, 0.04%)__CFStringAppendFormatCore (312 samples, 0.02%)CFStringCreateWithFormatAndArguments (428 samples, 0.02%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (426 samples, 0.02%)CFStringCreateWithFormat (436 samples, 0.02%)SCDynamicStoreKeyCreateNetworkGlobalEntity (441 samples, 0.02%)__108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke (215 samples, 0.01%)-[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] (333 samples, 0.02%)-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] (343 samples, 0.02%)_CFPreferencesCopyAppValueWithContainerAndConfiguration (397 samples, 0.02%)__CFBinaryPlistCreateObjectFiltered (461 samples, 0.02%)____CFBinaryPlistCreateObjectFiltered_block_invoke (307 samples, 0.02%)__CFDictionaryCreateTransfer (214 samples, 0.01%)__NSDictionaryI_new (212 samples, 0.01%)__CFBinaryPlistCreateObjectFiltered (892 samples, 0.05%)__CFBinaryPlistCreateObjectFiltered (1,215 samples, 0.06%)__CFBinaryPlistCreateObjectFiltered (1,301 samples, 0.07%)CFPropertyListCreateWithData (1,591 samples, 0.08%)_CFPropertyListCreateWithData (1,589 samples, 0.08%)__CFTryParseBinaryPlist (1,579 samples, 0.08%)mach_vm_deallocate (471 samples, 0.02%)_kernelrpc_mach_vm_deallocate_trap (465 samples, 0.02%)_SCUnserialize (2,147 samples, 0.11%)mach_msg2_internal (2,019 samples, 0.11%)mach_msg2_trap (2,015 samples, 0.11%)mach_msg (2,031 samples, 0.11%)mach_msg_overwrite (2,025 samples, 0.11%)configget (2,061 samples, 0.11%)__SCDynamicStoreCopyValueCommon (4,422 samples, 0.23%)mdict_removeObjectForKey (240 samples, 0.01%)-[__NSDictionaryM objectForKey:] (340 samples, 0.02%)__SCNetworkProxiesCopyNormalized (1,158 samples, 0.06%)validate_proxy_content (401 samples, 0.02%)normalize_scoped_proxy (1,225 samples, 0.06%)-[__NSDictionaryI __apply:context:] (1,231 samples, 0.06%)__SCNetworkProxiesCopyNormalized (1,903 samples, 0.10%)validate_proxy_content (191 samples, 0.01%)system_configuration::dynamic_store::SCDynamicStore::get_proxies (7,395 samples, 0.39%)SCDynamicStoreCopyProxiesWithOptions (7,385 samples, 0.39%)__CFStringAppendFormatCore (253 samples, 0.01%)CFStringCreateWithFormat (401 samples, 0.02%)CFStringCreateWithFormatAndArguments (397 samples, 0.02%)_CFStringCreateWithFormatAndArgumentsReturningMetadata (391 samples, 0.02%)__CFBasicHashDrain (439 samples, 0.02%)_CFRelease (505 samples, 0.03%)__CFBasicHashRehash (263 samples, 0.01%)__CFBinaryPlistWriteOrPresize (1,245 samples, 0.07%)CFPropertyListWrite (1,439 samples, 0.08%)CFPropertyListCreateData (1,626 samples, 0.09%)_SCSerialize (1,637 samples, 0.09%)mach_msg2_internal (1,906 samples, 0.10%)mach_msg2_trap (1,899 samples, 0.10%)mach_msg (1,925 samples, 0.10%)mach_msg_overwrite (1,921 samples, 0.10%)configopen (1,963 samples, 0.10%)__SCDynamicStoreAddSession (3,861 samples, 0.20%)SCDynamicStoreCreateWithOptions (4,541 samples, 0.24%)__SCDynamicStoreCreateInternal (251 samples, 0.01%)hyper_util::client::proxy::matcher::mac::with_system (13,237 samples, 0.70%)system_configuration::dynamic_store::SCDynamicStoreBuilder<T>::build (4,745 samples, 0.25%)system_configuration::dynamic_store::SCDynamicStore::create (4,548 samples, 0.24%)hyper_util::client::proxy::matcher::Matcher::from_system (13,696 samples, 0.72%)reqwest::async_impl::client::ClientBuilder::build (14,101 samples, 0.74%)reqwest::async_impl::client::Client::execute_request (691 samples, 0.04%)reqwest::async_impl::request::RequestBuilder::send (704 samples, 0.04%)torii_common::token_uri::fetch_http_with_retry::_{{closure}} (250,223 samples, 13.15%)torii_common::token_..<alloc::string::String as core::iter::traits::collect::FromIterator<char>>::from_iter (621 samples, 0.03%)torii_common::token_uri::resolve_metadata::_{{closure}} (252,649 samples, 13.28%)torii_common::token_..torii_common::token_uri::sanitize_json_string (1,096 samples, 0.06%)torii_common::token_uri::TokenUriService::run::_{{closure}}::_{{closure}} (355,083 samples, 18.67%)torii_common::token_uri::Toke..core::hash::BuildHasher::hash_one (422 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (348 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (563 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::remove (225 samples, 0.01%)tokio::runtime::context::with_scheduler (292 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (231 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (298 samples, 0.02%)tokio::runtime::task::harness::Harness<T,S>::drop_join_handle_slow (613 samples, 0.03%)tokio::runtime::task::state::State::transition_to_join_handle_dropped (604 samples, 0.03%)tokio::sync::mpsc::chan::Rx<T,S>::recv (300 samples, 0.02%)_platform_memmove (628 samples, 0.03%)tokio::runtime::context::with_scheduler (303 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_option_task_without_yield (307 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (231 samples, 0.01%)_malloc_zone_memalign (304 samples, 0.02%)_posix_memalign (309 samples, 0.02%)__rustc::__rdl_alloc (315 samples, 0.02%)_platform_memmove (397 samples, 0.02%)tokio::runtime::task::core::Cell<T,S>::new (855 samples, 0.04%)<deduplicated_symbol> (212 samples, 0.01%)tokio::runtime::task::list::OwnedTasks<S>::bind_inner (271 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::Handle::bind_new_task (1,452 samples, 0.08%)torii_common::token_uri::TokenUriService::run::_{{closure}} (4,281 samples, 0.23%)tokio::task::spawn::spawn (2,116 samples, 0.11%)<deduplicated_symbol> (1,600,680 samples, 84.15%)<deduplicated_symbol>std::sys::pal::unix::sync::mutex::Mutex::lock (192 samples, 0.01%)<deduplicated_symbol> (427 samples, 0.02%)hyper::body::incoming::Sender::poll_ready (713 samples, 0.04%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (1,432 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (272 samples, 0.01%)hyper::body::incoming::Sender::try_send_data (1,504 samples, 0.08%)tokio::sync::mpsc::chan::Rx<T,S>::recv (211 samples, 0.01%)hyper::client::dispatch::Receiver<T,U>::poll_recv (323 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (606 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (606 samples, 0.03%)__recvfrom (596 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (639 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_read (639 samples, 0.03%)security_framework::secure_transport::read_func (646 samples, 0.03%)SSLRecordReadInternal (651 samples, 0.03%)<deduplicated_symbol> (690 samples, 0.04%)SSLRead (653 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (837 samples, 0.04%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (835 samples, 0.04%)hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify (893 samples, 0.05%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (891 samples, 0.05%)bytes::bytes_mut::BytesMut::split_to (410 samples, 0.02%)_xzm_free (267 samples, 0.01%)SSLRecordFreeInternal (603 samples, 0.03%)_xzm_xzone_malloc_small_freelist (220 samples, 0.01%)__recvfrom (69,948 samples, 3.68%)__re..<&std::net::tcp::TcpStream as std::io::Read>::read (70,110 samples, 3.69%)<&st..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (70,165 samples, 3.69%)<&mi..tokio::runtime::io::registration::Registration::poll_ready (363 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_read (70,753 samples, 3.72%)toki..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (70,896 samples, 3.73%)<hyp..security_framework::secure_transport::read_func (71,064 samples, 3.74%)secu..timingsafe_enable_if_supported (544 samples, 0.03%)cc_cmp_safe_internal (645 samples, 0.03%)ccmode_gcm_finalize (834 samples, 0.04%)timingsafe_enable_if_supported (360 samples, 0.02%)ccgcm_finalize (1,430 samples, 0.08%)timingsafe_restore_if_supported (227 samples, 0.01%)timingsafe_enable_if_supported (362 samples, 0.02%)ccgcm_inc_iv (888 samples, 0.05%)timingsafe_restore_if_supported (431 samples, 0.02%)timingsafe_enable_if_supported (416 samples, 0.02%)ccgcm_reset (726 samples, 0.04%)timingsafe_restore_if_supported (202 samples, 0.01%)Decrypt_Main_Loop (17,433 samples, 0.92%)ccaes_vng_gcm_decrypt (17,814 samples, 0.94%)timingsafe_enable_if_supported (408 samples, 0.02%)ccgcm_update (18,589 samples, 0.98%)timingsafe_restore_if_supported (357 samples, 0.02%)CCSymmAEADDecrypt (21,713 samples, 1.14%)SSLDecryptRecord (21,773 samples, 1.14%)_platform_memmove (6,950 samples, 0.37%)timingsafe_enable_if_supported (353 samples, 0.02%)ccgcm_gmac (636 samples, 0.03%)timingsafe_restore_if_supported (205 samples, 0.01%)gcm_init (597 samples, 0.03%)ccmode_gcm_init (920 samples, 0.05%)timingsafe_enable_if_supported (797 samples, 0.04%)ccgcm_init_with_iv (3,215 samples, 0.17%)timingsafe_restore_if_supported (1,092 samples, 0.06%)tls_record_decrypt (32,871 samples, 1.73%)SSLRecordReadInternal (104,943 samples, 5.52%)SSLReco.._platform_memmove (2,785 samples, 0.15%)SSLRead (108,654 samples, 5.71%)SSLRead<deduplicated_symbol> (109,159 samples, 5.74%)<dedupl..__bzero (2,895 samples, 0.15%)_platform_memset (2,649 samples, 0.14%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (117,208 samples, 6.16%)<hyper_u..<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (117,144 samples, 6.16%)<tokio_n.._xzm_reclaim_mark_used_locked (420 samples, 0.02%)mach_vm_reclaim_try_cancel (411 samples, 0.02%)mach_absolute_time (351 samples, 0.02%)_xzm_reclaim_mark_used (1,018 samples, 0.05%)mach_vm_reclaim_update_kernel_accounting (583 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (536 samples, 0.03%)xzm_chunk_mark_used (1,074 samples, 0.06%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1,292 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (1,604 samples, 0.08%)_xzm_xzone_malloc_small_freelist (772 samples, 0.04%)bytes::bytes_mut::BytesMut::reserve_inner (2,689 samples, 0.14%)<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (120,573 samples, 6.34%)<hyper::..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (120,083 samples, 6.31%)hyper::p..hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (121,795 samples, 6.40%)hyper::p..hyper::proto::h1::decode::Decoder::decode (120,724 samples, 6.35%)hyper::p..http::header::map::HeaderMap<T>::try_append2 (259 samples, 0.01%)http::header::name::HeaderName::from_bytes (330 samples, 0.02%)httparse::parse_headers_iter_uninit (304 samples, 0.02%)httparse::Response::parse_with_config_and_uninit_headers (365 samples, 0.02%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (1,464 samples, 0.08%)__recvfrom (2,866 samples, 0.15%)<&std::net::tcp::TcpStream as std::io::Read>::read (2,888 samples, 0.15%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2,894 samples, 0.15%)security_framework::secure_transport::read_func (2,956 samples, 0.16%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (2,942 samples, 0.15%)tokio::io::poll_evented::PollEvented<E>::poll_read (2,931 samples, 0.15%)CCSymmAEADDecrypt (268 samples, 0.01%)SSLDecryptRecord (273 samples, 0.01%)tls_record_decrypt (551 samples, 0.03%)SSLRecordReadInternal (3,708 samples, 0.19%)SSLRead (3,827 samples, 0.20%)<deduplicated_symbol> (3,858 samples, 0.20%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (4,097 samples, 0.22%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (4,091 samples, 0.22%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (5,721 samples, 0.30%)hyper::proto::h1::io::Buffered<T,B>::parse (5,610 samples, 0.29%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (4,107 samples, 0.22%)__recvfrom (290 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (295 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (295 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_read (374 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (387 samples, 0.02%)security_framework::secure_transport::read_func (428 samples, 0.02%)SSLRecordReadInternal (452 samples, 0.02%)SSLRead (517 samples, 0.03%)<deduplicated_symbol> (631 samples, 0.03%)_platform_memset (396 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1,198 samples, 0.06%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (1,180 samples, 0.06%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_keep_alive (1,274 samples, 0.07%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1,253 samples, 0.07%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::encode (342 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::write_head (399 samples, 0.02%)__sendto (5,248 samples, 0.28%)<&std::net::tcp::TcpStream as std::io::Write>::write (5,259 samples, 0.28%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (5,268 samples, 0.28%)security_framework::secure_transport::write_func (5,298 samples, 0.28%)tokio::io::poll_evented::PollEvented<E>::poll_write (5,288 samples, 0.28%)SSLRecordServiceWriteQueueInternal (5,357 samples, 0.28%)CCSymmAEADEncrypt (283 samples, 0.01%)tls_record_encrypt (497 samples, 0.03%)SSLRecordWriteInternal (562 samples, 0.03%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (5,969 samples, 0.31%)tokio_native_tls::TlsStream<S>::with_context (5,965 samples, 0.31%)SSLWrite (5,936 samples, 0.31%)hyper::proto::h1::io::Buffered<T,B>::poll_flush (6,729 samples, 0.35%)tokio_native_tls::TlsStream<S>::with_context (579 samples, 0.03%)__sendto (3,185 samples, 0.17%)<&std::net::tcp::TcpStream as std::io::Write>::write (3,198 samples, 0.17%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3,207 samples, 0.17%)tokio::io::poll_evented::PollEvented<E>::poll_write (3,218 samples, 0.17%)security_framework::secure_transport::write_func (3,226 samples, 0.17%)SSLRecordServiceWriteQueueInternal (3,251 samples, 0.17%)tls_record_encrypt (204 samples, 0.01%)hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (143,261 samples, 7.53%)hyper::pro..tokio_native_tls::TlsStream<S>::with_context (3,578 samples, 0.19%)SSLClose (3,564 samples, 0.19%)tls_handshake_close (310 samples, 0.02%)SSLSendAlert (306 samples, 0.02%)tls_handshake_write_callback (247 samples, 0.01%)SSLRecordWriteInternal (241 samples, 0.01%)<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (143,399 samples, 7.54%)<hyper::cl.._CFRelease (250 samples, 0.01%)__CFURLDeallocate (448 samples, 0.02%)_CFRelease (653 samples, 0.03%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (770 samples, 0.04%)-[__NSArrayM dealloc] (931 samples, 0.05%)_CFRelease (339 samples, 0.02%)SecCertificateDestroy (1,573 samples, 0.08%)_CFRelease (1,845 samples, 0.10%)__RELEASE_OBJECTS_IN_THE_ARRAY__ (1,935 samples, 0.10%)-[__NSArrayM dealloc] (1,984 samples, 0.10%)-[__NSArrayM dealloc] (224 samples, 0.01%)-[__NSDictionaryM dealloc] (432 samples, 0.02%)cow_cleanup (402 samples, 0.02%)_CFRelease (504 samples, 0.03%)-[__NSSingleObjectArrayI dealloc] (566 samples, 0.03%)__CFBasicHashDrain (211 samples, 0.01%)_CFRelease (462 samples, 0.02%)SecTrustDestroy (3,167 samples, 0.17%)_CFRelease (3,190 samples, 0.17%)tls_handshake_destroy (581 samples, 0.03%)SSLContextDestroy (4,045 samples, 0.21%)_CFRelease (4,066 samples, 0.21%)close (1,806 samples, 0.09%)<mio::net::udp::UdpSocket as mio::event::source::Source>::deregister (382 samples, 0.02%)kevent (376 samples, 0.02%)tokio::runtime::io::driver::Handle::deregister_source (433 samples, 0.02%)<tokio::io::poll_evented::PollEvented<E> as core::ops::drop::Drop>::drop (2,244 samples, 0.12%)core::ptr::drop_in_place<hyper_util::rt::tokio::TokioIo<tokio_native_tls::TlsStream<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (6,382 samples, 0.34%)core::ptr::drop_in_place<security_framework::secure_transport::Connection<tokio_native_tls::AllowStd<hyper_util::rt::tokio::TokioIo<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>> (2,272 samples, 0.12%)core::ptr::drop_in_place<futures_util::future::try_future::into_future::IntoFuture<hyper::client::conn::http1::upgrades::UpgradeableConnection<reqwest::connect::sealed::Conn,reqwest::async_impl::body::Body>>> (6,549 samples, 0.34%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (150,099 samples, 7.89%)<futures_ut..<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (150,178 samples, 7.90%)<futures_ut..hyper_util::client::legacy::pool::IdleTask<T,K>::run::_{{closure}} (266 samples, 0.01%)<deduplicated_symbol> (557 samples, 0.03%)tokio::runtime::task::harness::Harness<T,S>::complete (883 samples, 0.05%)tokio::runtime::task::harness::Harness<T,S>::poll (1,753,242 samples, 92.17%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::scheduler::multi_thread::worker::Context::run_task (1,759,825 samples, 92.52%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (368 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::run (1,807,620 samples, 95.03%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::run (1,807,708 samples, 95.04%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (1,807,708 samples, 95.04%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (1,807,708 samples, 95.04%)tokio::runtime::context::scoped::Scoped<T>::set<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (1,886,473 samples, 99.18%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::task::core::Core<T,S>::poll (1,886,498 samples, 99.18%)tokio::runtime::task::core::Core<T,S>::poll<deduplicated_symbol> (262 samples, 0.01%)mio::waker::Waker::wake (262 samples, 0.01%)kevent (258 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (212 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (521 samples, 0.03%)tokio::runtime::context::with_scheduler (517 samples, 0.03%)tokio::runtime::task::harness::Harness<T,S>::complete (549 samples, 0.03%)tokio::runtime::task::harness::Harness<T,S>::poll (1,887,077 samples, 99.21%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::blocking::pool::Inner::run (1,888,107 samples, 99.26%)tokio::runtime::blocking::pool::Inner::runall (1,902,134 samples, 100%)thread_start (1,896,539 samples, 99.71%)thread_start_pthread_start (1,896,539 samples, 99.71%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (1,896,538 samples, 99.71%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (1,896,538 samples, 99.71%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (1,896,534 samples, 99.71%)std::sys::backtrace::__rust_begin_short_backtrace \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-4.svg b/bins/torii-tokens/flamegraph-4.svg new file mode 100644 index 0000000..ff9c467 --- /dev/null +++ b/bins/torii-tokens/flamegraph-4.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (4 samples, 0.04%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.02%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.02%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.02%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)<T as futures_util::fns::FnMut1<A>>::call_mut (2 samples, 0.02%)sqlx_postgres::any::_<impl core::convert::TryFrom<&sqlx_postgres::row::PgRow> for sqlx_core::any::row::AnyRow>::try_from (2 samples, 0.02%)sqlx_postgres::types::str::_<impl sqlx_core::decode::Decode<sqlx_postgres::database::Postgres> for alloc::string::String>::decode (2 samples, 0.02%)core::str::converts::from_utf8 (2 samples, 0.02%)<reqwest::async_impl::client::Client as core::default::Default>::default (2 samples, 0.02%)reqwest::async_impl::client::ClientBuilder::build (2 samples, 0.02%)tokio_postgres::connect::_{{closure}} (10 samples, 0.09%)tokio_postgres::connect::connect_once::_{{closure}} (10 samples, 0.09%)tokio_postgres::connect_raw::connect_raw::_{{closure}} (10 samples, 0.09%)postgres_protocol::authentication::sasl::ScramSha256::update (9 samples, 0.08%)postgres_protocol::authentication::sasl::hi (9 samples, 0.08%)sha2::sha256::compress256 (8 samples, 0.07%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.02%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.02%)sha2::sha256::compress256 (2 samples, 0.02%)torii::etl::engine_db::EngineDb::new::_{{closure}} (5 samples, 0.04%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (3 samples, 0.03%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (3 samples, 0.03%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (3 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (3 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (3 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.02%)sha2::sha256::compress256 (2 samples, 0.02%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.02%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.02%)sha2::sha256::compress256 (2 samples, 0.02%)start (33 samples, 0.29%)main (29 samples, 0.26%)std::rt::lang_start_internal (29 samples, 0.26%)std::rt::lang_start::_{{closure}} (28 samples, 0.25%)std::sys::backtrace::__rust_begin_short_backtrace (28 samples, 0.25%)torii_tokens::main (28 samples, 0.25%)tokio::runtime::park::CachedParkThread::block_on (28 samples, 0.25%)torii_tokens::run_indexer::_{{closure}} (26 samples, 0.23%)torii::run::_{{closure}} (4 samples, 0.04%)torii::etl::engine_db::EngineDb::new::_{{closure}} (4 samples, 0.04%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.02%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.02%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.02%)nw_path_libinfo_path_check (2 samples, 0.02%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (4 samples, 0.04%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (4 samples, 0.04%)getaddrinfo (4 samples, 0.04%)si_addrinfo (4 samples, 0.04%)DYLD-STUB$$pow (2 samples, 0.02%)__floatuntidf (3 samples, 0.03%)pow (6 samples, 0.05%)DYLD-STUB$$mach_absolute_time (2 samples, 0.02%)mach_absolute_time (55 samples, 0.49%)clock_gettime_nsec_np (60 samples, 0.53%)std::sys::pal::unix::time::Timespec::now (73 samples, 0.65%)clock_gettime (72 samples, 0.64%)mach_absolute_time (9 samples, 0.08%)DYLD-STUB$$clock_gettime (3 samples, 0.03%)mach_absolute_time (30 samples, 0.27%)clock_gettime_nsec_np (40 samples, 0.36%)mach_timebase_info (3 samples, 0.03%)clock_gettime (42 samples, 0.37%)std::sys::pal::unix::time::Timespec::now (50 samples, 0.44%)std::time::Instant::elapsed (51 samples, 0.45%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (8 samples, 0.07%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (20 samples, 0.18%)__psynch_cvwait (2 samples, 0.02%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (30 samples, 0.27%)parking_lot::condvar::Condvar::wait_until_internal (30 samples, 0.27%)_pthread_cond_wait (27 samples, 0.24%)__psynch_cvwait (27 samples, 0.24%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (2 samples, 0.02%)DYLD-STUB$$clock_gettime (7 samples, 0.06%)DYLD-STUB$$mach_absolute_time (3 samples, 0.03%)DYLD-STUB$$mach_timebase_info (4 samples, 0.04%)mach_absolute_time (83 samples, 0.74%)clock_gettime_nsec_np (111 samples, 0.99%)mach_timebase_info (4 samples, 0.04%)std::sys::pal::unix::time::Timespec::now (153 samples, 1.36%)clock_gettime (134 samples, 1.19%)mach_absolute_time (13 samples, 0.12%)std::time::Instant::now (4 samples, 0.04%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (6 samples, 0.05%)kevent (367 samples, 3.26%)kev..DYLD-STUB$$kevent (4 samples, 0.04%)mio::poll::Poll::poll (2,392 samples, 21.26%)mio::poll::Poll::pollkevent (2,352 samples, 20.91%)kevent_tlv_get_addr (2 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (15 samples, 0.13%)tokio::runtime::context::with_scheduler (9 samples, 0.08%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (3 samples, 0.03%)tokio::runtime::task::raw::schedule (3 samples, 0.03%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (84 samples, 0.75%)tokio::runtime::task::waker::wake_by_val (46 samples, 0.41%)tokio::runtime::task::state::State::transition_to_notified_by_val (19 samples, 0.17%)tokio::runtime::io::driver::Driver::turn (2,945 samples, 26.18%)tokio::runtime::io::driver::Driver::turntokio::runtime::signal::Driver::process (8 samples, 0.07%)tokio::runtime::time::wheel::Wheel::next_expiration (11 samples, 0.10%)tokio::runtime::time::wheel::level::Level::next_expiration (9 samples, 0.08%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (35 samples, 0.31%)tokio::runtime::time::wheel::Wheel::poll (18 samples, 0.16%)tokio::runtime::time::wheel::Wheel::next_expiration (12 samples, 0.11%)tokio::runtime::time::wheel::level::Level::next_expiration (10 samples, 0.09%)tokio::runtime::time::wheel::Wheel::next_expiration (16 samples, 0.14%)tokio::runtime::time::wheel::level::Level::next_expiration (14 samples, 0.12%)tokio::runtime::time::Driver::park_internal (3,184 samples, 28.30%)tokio::runtime::time::Driver::park_internaltokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (3 samples, 0.03%)tokio::runtime::scheduler::multi_thread::park::Parker::park (3,276 samples, 29.12%)tokio::runtime::scheduler::multi_thread::park::..tokio::runtime::time::wheel::Wheel::next_expiration (2 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.02%)clock_gettime (2 samples, 0.02%)kevent (3 samples, 0.03%)tokio::runtime::io::driver::Driver::turn (24 samples, 0.21%)mio::poll::Poll::poll (20 samples, 0.18%)kevent (19 samples, 0.17%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (32 samples, 0.28%)tokio::runtime::time::Driver::park_internal (28 samples, 0.25%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (3,358 samples, 29.85%)tokio::runtime::scheduler::multi_thread::worker:..<deduplicated_symbol> (5 samples, 0.04%)mio::waker::Waker::wake (3 samples, 0.03%)kevent (3 samples, 0.03%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (8 samples, 0.07%)_tlv_get_addr (5 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.02%)__sendto (2 samples, 0.02%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.03%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.03%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.03%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (7 samples, 0.06%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (7 samples, 0.06%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (4 samples, 0.04%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (4 samples, 0.04%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (4 samples, 0.04%)tokio::runtime::io::registration::Registration::try_io (4 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (4 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Read>::read (4 samples, 0.04%)__recvfrom (4 samples, 0.04%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (8 samples, 0.07%)tokio::runtime::task::core::TaskIdGuard::enter (3 samples, 0.03%)_tlv_get_addr (2 samples, 0.02%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.04%)alloc::raw_vec::finish_grow (4 samples, 0.04%)_realloc (4 samples, 0.04%)_malloc_zone_realloc (4 samples, 0.04%)xzm_realloc (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)_malloc_zone_realloc (5 samples, 0.04%)xzm_realloc (5 samples, 0.04%)alloc::fmt::format::format_inner (19 samples, 0.17%)core::fmt::write (19 samples, 0.17%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (18 samples, 0.16%)core::fmt::write (10 samples, 0.09%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (10 samples, 0.09%)core::fmt::write (9 samples, 0.08%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (8 samples, 0.07%)<alloc::string::String as core::fmt::Write>::write_str (8 samples, 0.07%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.06%)alloc::raw_vec::finish_grow (7 samples, 0.06%)_realloc (7 samples, 0.06%)hashbrown::map::HashMap<K,V,S,A>::insert (2 samples, 0.02%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (23 samples, 0.20%)_malloc_zone_realloc (3 samples, 0.03%)xzm_realloc (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (5 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.04%)alloc::raw_vec::finish_grow (5 samples, 0.04%)_realloc (4 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (8 samples, 0.07%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.05%)alloc::raw_vec::finish_grow (6 samples, 0.05%)_realloc (4 samples, 0.04%)xzm_malloc_zone_size (2 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)core::fmt::Formatter::pad_integral (4 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.02%)core::fmt::Formatter::pad_integral (2 samples, 0.02%)_platform_memmove (3 samples, 0.03%)_platform_memmove (3 samples, 0.03%)_malloc_zone_realloc (13 samples, 0.12%)xzm_realloc (10 samples, 0.09%)_xzm_free (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (18 samples, 0.16%)alloc::raw_vec::finish_grow (18 samples, 0.16%)_realloc (16 samples, 0.14%)xzm_malloc_zone_size (3 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (22 samples, 0.20%)<alloc::string::String as core::fmt::Write>::write_char (2 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (47 samples, 0.42%)core::fmt::write (42 samples, 0.37%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (36 samples, 0.32%)core::fmt::Formatter::pad_integral (4 samples, 0.04%)alloc::fmt::format::format_inner (75 samples, 0.67%)core::fmt::write (74 samples, 0.66%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (66 samples, 0.59%)core::fmt::write (49 samples, 0.44%)core::fmt::write (2 samples, 0.02%)core::hash::BuildHasher::hash_one (3 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (7 samples, 0.06%)__commpage_gettimeofday_internal (3 samples, 0.03%)mach_absolute_time (3 samples, 0.03%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (111 samples, 0.99%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (86 samples, 0.76%)torii::etl::envelope::Envelope::new (4 samples, 0.04%)chrono::offset::utc::Utc::now (4 samples, 0.04%)std::sys::pal::unix::time::Timespec::now (4 samples, 0.04%)clock_gettime (4 samples, 0.04%)gettimeofday (4 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.02%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (4 samples, 0.04%)alloc::fmt::format::format_inner (4 samples, 0.04%)core::fmt::write (4 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (4 samples, 0.04%)_xzm_free (4 samples, 0.04%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (135 samples, 1.20%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (123 samples, 1.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_free (3 samples, 0.03%)_xzm_xzone_malloc (2 samples, 0.02%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (150 samples, 1.33%)_platform_memmove (2 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.02%)kevent (2 samples, 0.02%)<deduplicated_symbol> (30 samples, 0.27%)mio::waker::Waker::wake (28 samples, 0.25%)kevent (28 samples, 0.25%)pthread_cond_signal (10 samples, 0.09%)__psynch_cvsignal (10 samples, 0.09%)tokio::runtime::context::with_scheduler (44 samples, 0.39%)parking_lot::condvar::Condvar::notify_one_slow (13 samples, 0.12%)std::sys::pal::unix::time::Timespec::now (3 samples, 0.03%)clock_gettime (3 samples, 0.03%)clock_gettime_nsec_np (2 samples, 0.02%)mach_absolute_time (2 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (48 samples, 0.43%)tokio::runtime::task::waker::wake_by_val (45 samples, 0.40%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (45 samples, 0.40%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (50 samples, 0.44%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (49 samples, 0.44%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (49 samples, 0.44%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (49 samples, 0.44%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (52 samples, 0.46%)http_body_util::collected::Collected<B>::push_frame (2 samples, 0.02%)alloc::collections::vec_deque::VecDeque<T,A>::grow (2 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)_platform_memmove (21 samples, 0.19%)_xzm_malloc_large_huge (2 samples, 0.02%)xzm_segment_group_alloc_chunk (2 samples, 0.02%)encoding_rs::Encoding::decode_without_bom_handling (11 samples, 0.10%)encoding_rs::utf_8::utf8_valid_up_to (11 samples, 0.10%)_platform_memmove (27 samples, 0.24%)_xzm_free (2 samples, 0.02%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (34 samples, 0.30%)bytes::bytes_mut::shared_v_drop (3 samples, 0.03%)reqwest::async_impl::response::Response::text::_{{closure}} (126 samples, 1.12%)http_body_util::collected::Collected<B>::to_bytes (39 samples, 0.35%)_platform_memmove (5 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.05%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.05%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (3 samples, 0.03%)<deduplicated_symbol> (3 samples, 0.03%)__rustc::__rdl_alloc (2 samples, 0.02%)_malloc_zone_malloc (4 samples, 0.04%)_platform_memmove (10 samples, 0.09%)_xzm_xzone_malloc (6 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.28%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.02%)_realloc (17 samples, 0.15%)_malloc_zone_realloc (16 samples, 0.14%)xzm_realloc (14 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (70 samples, 0.62%)alloc::raw_vec::RawVec<T,A>::grow_one (23 samples, 0.20%)alloc::raw_vec::finish_grow (23 samples, 0.20%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (18 samples, 0.16%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.04%)alloc::raw_vec::finish_grow (5 samples, 0.04%)_xzm_xzone_malloc (2 samples, 0.02%)_platform_memmove (4 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (8 samples, 0.07%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (30 samples, 0.27%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (6 samples, 0.05%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (9 samples, 0.08%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (120 samples, 1.07%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (117 samples, 1.04%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (3 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.07%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (132 samples, 1.17%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (136 samples, 1.21%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (3 samples, 0.03%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (147 samples, 1.31%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (147 samples, 1.31%)<deduplicated_symbol> (2 samples, 0.02%)DYLD-STUB$$memcpy (2 samples, 0.02%)__rustc::__rdl_alloc (3 samples, 0.03%)_platform_memmove (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (18 samples, 0.16%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.03%)alloc::raw_vec::finish_grow (3 samples, 0.03%)_realloc (3 samples, 0.03%)_malloc_zone_realloc (3 samples, 0.03%)xzm_realloc (3 samples, 0.03%)<deduplicated_symbol> (3 samples, 0.03%)_platform_memmove (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.20%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (4 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.05%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.02%)_realloc (8 samples, 0.07%)_malloc_zone_realloc (8 samples, 0.07%)xzm_realloc (6 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (45 samples, 0.40%)alloc::raw_vec::RawVec<T,A>::grow_one (10 samples, 0.09%)alloc::raw_vec::finish_grow (10 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (49 samples, 0.44%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (84 samples, 0.75%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (83 samples, 0.74%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (14 samples, 0.12%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (7 samples, 0.06%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (3 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (85 samples, 0.76%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (236 samples, 2.10%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (236 samples, 2.10%)<..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (237 samples, 2.11%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (237 samples, 2.11%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (239 samples, 2.12%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (239 samples, 2.12%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (239 samples, 2.12%)<..alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.02%)_xzm_free (4 samples, 0.04%)_xzm_free (6 samples, 0.05%)_free (2 samples, 0.02%)_xzm_free (4 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (37 samples, 0.33%)core::ptr::drop_in_place<serde_core::private::content::Content> (36 samples, 0.32%)core::ptr::drop_in_place<serde_core::private::content::Content> (36 samples, 0.32%)core::ptr::drop_in_place<serde_core::private::content::Content> (35 samples, 0.31%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.30%)core::ptr::drop_in_place<serde_core::private::content::Content> (29 samples, 0.26%)core::ptr::drop_in_place<serde_core::private::content::Content> (18 samples, 0.16%)core::ptr::drop_in_place<serde_core::private::content::Content> (9 samples, 0.08%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (2 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (8 samples, 0.07%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (6 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (17 samples, 0.15%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.02%)_platform_memmove (3 samples, 0.03%)_malloc_zone_realloc (8 samples, 0.07%)xzm_realloc (7 samples, 0.06%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (11 samples, 0.10%)alloc::raw_vec::finish_grow (10 samples, 0.09%)_realloc (9 samples, 0.08%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (4 samples, 0.04%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (10 samples, 0.09%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (12 samples, 0.11%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.04%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (15 samples, 0.13%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc_tiny (3 samples, 0.03%)_malloc_zone_realloc (9 samples, 0.08%)xzm_realloc (6 samples, 0.05%)_realloc (11 samples, 0.10%)alloc::raw_vec::RawVec<T,A>::grow_one (18 samples, 0.16%)alloc::raw_vec::finish_grow (16 samples, 0.14%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (72 samples, 0.64%)serde_core::de::Deserializer::__deserialize_content_v1 (33 samples, 0.29%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (27 samples, 0.24%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (125 samples, 1.11%)serde_core::de::Deserializer::__deserialize_content_v1 (84 samples, 0.75%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (8 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (173 samples, 1.54%)serde_core::de::Deserializer::__deserialize_content_v1 (151 samples, 1.34%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (18 samples, 0.16%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (10 samples, 0.09%)_platform_memmove (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (226 samples, 2.01%)<..serde_core::de::Deserializer::__deserialize_content_v1 (222 samples, 1.97%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (222 samples, 1.97%)<..serde_core::de::Deserializer::__deserialize_content_v1 (207 samples, 1.84%)s..<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (634 samples, 5.64%)<starkn..serde_json::de::from_str (504 samples, 4.48%)serde..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (504 samples, 4.48%)<&mut..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (504 samples, 4.48%)<serd..starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (504 samples, 4.48%)stark..serde_core::de::Deserializer::__deserialize_content_v1 (228 samples, 2.03%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (228 samples, 2.03%)<..serde_core::de::Deserializer::__deserialize_content_v1 (228 samples, 2.03%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (228 samples, 2.03%)<..serde_core::de::Deserializer::__deserialize_content_v1 (228 samples, 2.03%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (228 samples, 2.03%)<..serde_core::de::Deserializer::__deserialize_content_v1 (227 samples, 2.02%)s.._platform_memmove (2 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.02%)_malloc_zone_malloc (3 samples, 0.03%)_platform_memmove (5 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (14 samples, 0.12%)_xzm_xzone_malloc (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (31 samples, 0.28%)serde::private::de::content::content_clone (29 samples, 0.26%)serde::private::de::content::content_clone (22 samples, 0.20%)serde::private::de::content::content_clone (2 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (56 samples, 0.50%)starknet_types_core::felt::Felt::from_hex (55 samples, 0.49%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (55 samples, 0.49%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (45 samples, 0.40%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (27 samples, 0.24%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (61 samples, 0.54%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (61 samples, 0.54%)_xzm_free (2 samples, 0.02%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (67 samples, 0.60%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (67 samples, 0.60%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (94 samples, 0.84%)starknet_types_core::felt::Felt::from_hex (93 samples, 0.83%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (93 samples, 0.83%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (86 samples, 0.76%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (44 samples, 0.39%)_free (3 samples, 0.03%)_xzm_free (4 samples, 0.04%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (103 samples, 0.92%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (104 samples, 0.92%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.04%)serde::private::de::content::MapDeserializer<E>::end (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (215 samples, 1.91%)s..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::InvokeTransactionContent>::deserialize (183 samples, 1.63%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (115 samples, 1.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (115 samples, 1.02%)_malloc_zone_malloc (2 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (5 samples, 0.04%)<deduplicated_symbol> (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_platform_memmove (5 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (7 samples, 0.06%)_malloc_zone_malloc (4 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)<deduplicated_symbol> (3 samples, 0.03%)DYLD-STUB$$memcpy (2 samples, 0.02%)_malloc_zone_malloc (4 samples, 0.04%)_platform_memmove (5 samples, 0.04%)_xzm_xzone_malloc (3 samples, 0.03%)<alloc::string::String as core::clone::Clone>::clone (21 samples, 0.19%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66 samples, 0.59%)serde::private::de::content::content_clone (62 samples, 0.55%)serde::private::de::content::content_clone (57 samples, 0.51%)serde::private::de::content::content_clone (46 samples, 0.41%)serde::private::de::content::content_clone (25 samples, 0.22%)<deduplicated_symbol> (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (4 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (4 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (4 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (42 samples, 0.37%)starknet_types_core::felt::Felt::from_hex (41 samples, 0.36%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (41 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (40 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (18 samples, 0.16%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (178 samples, 1.58%)starknet_types_core::felt::Felt::from_hex (175 samples, 1.56%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (173 samples, 1.54%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (149 samples, 1.32%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (79 samples, 0.70%)_free (3 samples, 0.03%)_xzm_free (13 samples, 0.12%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.02%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (206 samples, 1.83%)<.._xzm_free (7 samples, 0.06%)_platform_memset (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (219 samples, 1.95%)<..DYLD-STUB$$free (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (271 samples, 2.41%)<s.._xzm_free (3 samples, 0.03%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (279 samples, 2.48%)<s..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (281 samples, 2.50%)<s.._xzm_free (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (3 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.04%)_xzm_free (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (300 samples, 2.67%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (585 samples, 5.20%)<serde..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (367 samples, 3.26%)sta..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (301 samples, 2.68%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (587 samples, 5.22%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (587 samples, 5.22%)<serde..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (587 samples, 5.22%)<serde.._xzm_free (7 samples, 0.06%)DYLD-STUB$$free (2 samples, 0.02%)_free (3 samples, 0.03%)_xzm_free (22 samples, 0.20%)_xzm_xzone_madvise_batch (2 samples, 0.02%)_free (4 samples, 0.04%)_xzm_free (10 samples, 0.09%)_free (6 samples, 0.05%)_xzm_free (14 samples, 0.12%)core::ptr::drop_in_place<serde_core::private::content::Content> (88 samples, 0.78%)core::ptr::drop_in_place<serde_core::private::content::Content> (88 samples, 0.78%)core::ptr::drop_in_place<serde_core::private::content::Content> (87 samples, 0.77%)core::ptr::drop_in_place<serde_core::private::content::Content> (85 samples, 0.76%)core::ptr::drop_in_place<serde_core::private::content::Content> (74 samples, 0.66%)core::ptr::drop_in_place<serde_core::private::content::Content> (43 samples, 0.38%)core::ptr::drop_in_place<serde_core::private::content::Content> (25 samples, 0.22%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (3 samples, 0.03%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (3 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.03%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (5 samples, 0.04%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (7 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.06%)<deduplicated_symbol> (2 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc (4 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (28 samples, 0.25%)_xzm_xzone_malloc_tiny (5 samples, 0.04%)_xzm_free (2 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (37 samples, 0.33%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (37 samples, 0.33%)serde_json::value::de::visit_array (37 samples, 0.33%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (59 samples, 0.52%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (11 samples, 0.10%)_xzm_free (4 samples, 0.04%)_platform_memset (3 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (76 samples, 0.68%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (64 samples, 0.57%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4 samples, 0.04%)_xzm_free (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (88 samples, 0.78%)serde_json::value::de::visit_array (81 samples, 0.72%)_xzm_xzone_madvise_batch (3 samples, 0.03%)xzm_reclaim_mark_free_locked (2 samples, 0.02%)xzm_reclaim_sync_and_resize (2 samples, 0.02%)mach_vm_reclaim_ring_resize (2 samples, 0.02%)mach_vm_deferred_reclamation_buffer_resize (2 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (90 samples, 0.80%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (94 samples, 0.84%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (94 samples, 0.84%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (94 samples, 0.84%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (94 samples, 0.84%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (3 samples, 0.03%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (1,405 samples, 12.49%)<starknet_providers..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (1,405 samples, 12.49%)starknet_providers:..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (771 samples, 6.85%)starknet_..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (96 samples, 0.85%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (96 samples, 0.85%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (96 samples, 0.85%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (96 samples, 0.85%)serde_json::value::de::visit_array (96 samples, 0.85%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (96 samples, 0.85%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (96 samples, 0.85%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (96 samples, 0.85%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (2 samples, 0.02%)_xzm_xzone_madvise_batch (2 samples, 0.02%)SSLProcessHandshakeMessage (2 samples, 0.02%)SSLProcessCertificate (2 samples, 0.02%)__ssl_debug_enabled (2 samples, 0.02%)pthread_once (2 samples, 0.02%)_os_once (2 samples, 0.02%)_os_once_callout (2 samples, 0.02%)__pthread_once_handler (2 samples, 0.02%)Security::DatabaseSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.02%)Security::DatabaseManager::dbOpen(Security::DatabaseSession&, Security::DbName const&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.02%)Security::Database::_dbOpen(Security::DatabaseSession&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.02%)Security::AppleDatabase::dbOpen(Security::DbContext&) (2 samples, 0.02%)Security::DbModifier::getDbVersion(bool) (2 samples, 0.02%)SSLHandshake (8 samples, 0.07%)SSLHandshakeProceed (8 samples, 0.07%)tls_handshake_process (6 samples, 0.05%)SSLProcessHandshakeRecordInner (6 samples, 0.05%)tls_handshake_message_callback (4 samples, 0.04%)tls_helper_set_peer_pubkey (4 samples, 0.04%)SecTrustCopyPublicKey (4 samples, 0.04%)SecCertificateCopyPublicKey$LEGACYMAC (4 samples, 0.04%)Security::KeychainCore::Certificate::publicKey() (4 samples, 0.04%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (4 samples, 0.04%)Security::KeychainCore::Certificate::clHandle() (3 samples, 0.03%)Security::CssmClient::AttachmentImpl::activate() (3 samples, 0.03%)Security::CssmClient::ModuleImpl::activate() (3 samples, 0.03%)CSSM_ModuleLoad (3 samples, 0.03%)Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) (3 samples, 0.03%)Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) (3 samples, 0.03%)Security::MDSClient::Directory::cdsa() const (3 samples, 0.03%)mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) (3 samples, 0.03%)Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (3 samples, 0.03%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (10 samples, 0.09%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (10 samples, 0.09%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (10 samples, 0.09%)security_framework::trust::SecTrust::evaluate_with_error (2 samples, 0.02%)SecTrustEvaluateInternal (2 samples, 0.02%)SecTrustEvaluateIfNecessary (2 samples, 0.02%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.02%)_dispatch_client_callout (2 samples, 0.02%)__SecTrustEvaluateIfNecessary_block_invoke (2 samples, 0.02%)_os_activity_initiate_impl (2 samples, 0.02%)__SecTrustEvaluateIfNecessary_block_invoke_2 (2 samples, 0.02%)SecOSStatusWith (2 samples, 0.02%)__SecTrustEvaluateIfNecessary_block_invoke_3 (2 samples, 0.02%)securityd_send_sync_and_do (2 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (12 samples, 0.11%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (12 samples, 0.11%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (12 samples, 0.11%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (12 samples, 0.11%)reqwest::connect::with_timeout::_{{closure}} (12 samples, 0.11%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (12 samples, 0.11%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (12 samples, 0.11%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (13 samples, 0.12%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (13 samples, 0.12%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (13 samples, 0.12%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (13 samples, 0.12%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (15 samples, 0.13%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (15 samples, 0.13%)_platform_memmove (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)sqlx_core::pool::executor::_<impl sqlx_core::executor::Executor for &sqlx_core::pool::Pool<DB>>::fetch_optional::_{{closure}} (2 samples, 0.02%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (1,432 samples, 12.73%)<torii::etl::extrac..torii::etl::extractor::starknet_helpers::block_into_contexts (3 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (3 samples, 0.03%)<deduplicated_symbol> (15 samples, 0.13%)mio::waker::Waker::wake (15 samples, 0.13%)kevent (15 samples, 0.13%)pthread_cond_signal (5 samples, 0.04%)__psynch_cvsignal (5 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (7 samples, 0.06%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.02%)clock_gettime (2 samples, 0.02%)clock_gettime_nsec_np (2 samples, 0.02%)mach_absolute_time (2 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (26 samples, 0.23%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (26 samples, 0.23%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (26 samples, 0.23%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (26 samples, 0.23%)futures_channel::mpsc::Receiver<T>::next_message (26 samples, 0.23%)tokio::runtime::task::waker::wake_by_val (23 samples, 0.20%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (23 samples, 0.20%)tokio::runtime::context::with_scheduler (23 samples, 0.20%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (27 samples, 0.24%)_platform_memmove (7 samples, 0.06%)encoding_rs::Encoding::decode_without_bom_handling (7 samples, 0.06%)encoding_rs::utf_8::utf8_valid_up_to (7 samples, 0.06%)_platform_memmove (13 samples, 0.12%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (15 samples, 0.13%)reqwest::async_impl::response::Response::text::_{{closure}} (58 samples, 0.52%)http_body_util::collected::Collected<B>::to_bytes (16 samples, 0.14%)<deduplicated_symbol> (6 samples, 0.05%)__rustc::__rdl_alloc (2 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.02%)_malloc_zone_malloc (7 samples, 0.06%)_platform_memmove (21 samples, 0.19%)_xzm_xzone_malloc (6 samples, 0.05%)_xzm_xzone_thread_cache_fill_and_malloc (8 samples, 0.07%)_xzm_xzone_find_and_malloc_from_freelist_chunk (3 samples, 0.03%)xzm_chunk_mark_used (2 samples, 0.02%)_xzm_reclaim_mark_used (2 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (60 samples, 0.53%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (73 samples, 0.65%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (73 samples, 0.65%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (73 samples, 0.65%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (72 samples, 0.64%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (72 samples, 0.64%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.03%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (6 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (52 samples, 0.46%)serde_core::de::Deserializer::__deserialize_content_v1 (41 samples, 0.36%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (36 samples, 0.32%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (8 samples, 0.07%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (199 samples, 1.77%)serde_json::de::from_str (139 samples, 1.24%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (139 samples, 1.24%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (139 samples, 1.24%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (139 samples, 1.24%)serde_core::de::Deserializer::__deserialize_content_v1 (63 samples, 0.56%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (63 samples, 0.56%)serde_core::de::Deserializer::__deserialize_content_v1 (63 samples, 0.56%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (63 samples, 0.56%)serde_core::de::Deserializer::__deserialize_content_v1 (63 samples, 0.56%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (347 samples, 3.08%)<la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (328 samples, 2.92%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (183 samples, 1.63%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (358 samples, 3.18%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (358 samples, 3.18%)<se..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (355 samples, 3.16%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (351 samples, 3.12%)<se..starknet_types_core::felt::Felt::from_hex (350 samples, 3.11%)sta..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.02%)_free (8 samples, 0.07%)__bzero (4 samples, 0.04%)_xzm_free (16 samples, 0.14%)core::ptr::drop_in_place<serde_core::private::content::Content> (28 samples, 0.25%)core::ptr::drop_in_place<serde_core::private::content::Content> (27 samples, 0.24%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (2 samples, 0.02%)serde_json::value::de::visit_array (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.02%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (2 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.02%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (2 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (596 samples, 5.30%)<stark..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (596 samples, 5.30%)starkn..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (397 samples, 3.53%)sta..serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::map::Map<alloc::string::String,serde_json::value::Value>>::deserialize_any (11 samples, 0.10%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.10%)<serde_json::value::de::MapDeserializer as serde_core::de::MapAccess>::next_value_seed (11 samples, 0.10%)<serde::private::de::content::ContentVisitor as serde_core::de::DeserializeSeed>::deserialize (11 samples, 0.10%)serde_json::value::de::visit_array (9 samples, 0.08%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (9 samples, 0.08%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (3 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (3 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (3 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (3 samples, 0.03%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (2 samples, 0.02%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (2 samples, 0.02%)tokio::runtime::io::registration::Registration::try_io (2 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.02%)__recvfrom (2 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.02%)__sendto (2 samples, 0.02%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (8 samples, 0.07%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (7 samples, 0.06%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.03%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.03%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.02%)__sendto (2 samples, 0.02%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (5 samples, 0.04%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (5 samples, 0.04%)tokio::net::tcp::stream::TcpStream::try_write (5 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.04%)__sendto (2 samples, 0.02%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (10 samples, 0.09%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (10 samples, 0.09%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (5 samples, 0.04%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (5 samples, 0.04%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (5 samples, 0.04%)tokio::runtime::io::registration::Registration::try_io (5 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (5 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Read>::read (5 samples, 0.04%)__recvfrom (5 samples, 0.04%)<tokio::time::timeout::Timeout<T> as core::future::future::Future>::poll (15 samples, 0.13%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.02%)sha2::sha256::compress256 (2 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (28 samples, 0.25%)<deduplicated_symbol> (28 samples, 0.25%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (27 samples, 0.24%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (27 samples, 0.24%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (27 samples, 0.24%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (16 samples, 0.14%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (29 samples, 0.26%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (4 samples, 0.04%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (4 samples, 0.04%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (3 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (2 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (2 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (9 samples, 0.08%)serde_json::de::from_trait (8 samples, 0.07%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (8 samples, 0.07%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (8 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (8 samples, 0.07%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (2 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (2 samples, 0.02%)alloc::fmt::format::format_inner (2 samples, 0.02%)core::fmt::write (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.02%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (6 samples, 0.05%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (4 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.03%)xzm_realloc (2 samples, 0.02%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (9 samples, 0.08%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (7 samples, 0.06%)alloc::fmt::format::format_inner (7 samples, 0.06%)core::fmt::write (7 samples, 0.06%)<alloc::string::String as core::fmt::Write>::write_str (7 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.05%)alloc::raw_vec::finish_grow (6 samples, 0.05%)_realloc (6 samples, 0.05%)xzm_malloc_zone_size (2 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (2 samples, 0.02%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (661 samples, 5.88%)<torii:..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (660 samples, 5.87%)torii::..torii::etl::identification::registry::ContractRegistry::run_rules (25 samples, 0.22%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (9 samples, 0.08%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (7 samples, 0.06%)alloc::fmt::format::format_inner (5 samples, 0.04%)core::fmt::write (3 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (2 samples, 0.02%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (2 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (2 samples, 0.02%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (8 samples, 0.07%)torii::etl::decoder::DecoderId::new (6 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (4 samples, 0.04%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (5 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.04%)alloc::raw_vec::finish_grow (5 samples, 0.04%)_realloc (5 samples, 0.04%)_malloc_zone_realloc (4 samples, 0.04%)xzm_realloc (4 samples, 0.04%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (9 samples, 0.08%)core::fmt::write (7 samples, 0.06%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (7 samples, 0.06%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (15 samples, 0.13%)alloc::fmt::format::format_inner (14 samples, 0.12%)core::fmt::write (14 samples, 0.12%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (14 samples, 0.12%)core::fmt::write (10 samples, 0.09%)serde_core::ser::Serializer::collect_seq (19 samples, 0.17%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (19 samples, 0.17%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (19 samples, 0.17%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (18 samples, 0.16%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (18 samples, 0.16%)serde_core::ser::Serializer::collect_seq (2 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (2 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (33 samples, 0.29%)serde_json::de::from_str (6 samples, 0.05%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (6 samples, 0.05%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (6 samples, 0.05%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (4 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.02%)_platform_memmove (3 samples, 0.03%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (40 samples, 0.36%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (40 samples, 0.36%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (3 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_platform_memset (2 samples, 0.02%)_platform_memset (5 samples, 0.04%)_xzm_free (15 samples, 0.13%)mach_absolute_time (3 samples, 0.03%)core::hash::BuildHasher::hash_one (10 samples, 0.09%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (4 samples, 0.04%)_xzm_free (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (6 samples, 0.05%)futures_channel::mpsc::channel (4 samples, 0.04%)_xzm_xzone_malloc_tiny (3 samples, 0.03%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (14 samples, 0.12%)tokio_postgres::client::InnerClient::with_buf (5 samples, 0.04%)postgres_protocol::message::frontend::write_body (4 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (4 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (21 samples, 0.19%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (17 samples, 0.15%)core::ptr::drop_in_place<tokio_postgres::row::Row> (23 samples, 0.20%)core::hash::BuildHasher::hash_one (6 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.04%)hashbrown::map::HashMap<K,V,S,A>::insert (15 samples, 0.13%)hashbrown::raw::RawTable<T,A>::reserve_rehash (6 samples, 0.05%)_xzm_malloc_large_huge (6 samples, 0.05%)xzm_segment_group_alloc_chunk (6 samples, 0.05%)_xzm_segment_group_find_and_allocate_chunk (6 samples, 0.05%)_xzm_segment_group_span_mark_smaller (6 samples, 0.05%)mach_vm_reclaim_update_kernel_accounting (6 samples, 0.05%)mach_vm_reclaim_update_kernel_accounting_trap (6 samples, 0.05%)tokio_postgres::client::Client::query_opt::_{{closure}} (2 samples, 0.02%)tokio_postgres::row::Row::get (7 samples, 0.06%)tokio_postgres::row::Row::col_buffer (3 samples, 0.03%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (6 samples, 0.05%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.03%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.02%)tokio::runtime::context::with_scheduler (2 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (25 samples, 0.22%)futures_channel::mpsc::channel (19 samples, 0.17%)_xzm_xzone_malloc_tiny (10 samples, 0.09%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (38 samples, 0.34%)tokio_postgres::client::InnerClient::with_buf (9 samples, 0.08%)postgres_protocol::message::frontend::write_body (5 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.02%)DYLD-STUB$$free (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (47 samples, 0.42%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (47 samples, 0.42%)_xzm_free (4 samples, 0.04%)_free (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (10 samples, 0.09%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (10 samples, 0.09%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.04%)_xzm_free (4 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (15 samples, 0.13%)_platform_memmove (8 samples, 0.07%)_xzm_free (3 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc (3 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (9 samples, 0.08%)alloc::raw_vec::finish_grow (7 samples, 0.06%)core::iter::traits::iterator::Iterator::unzip (15 samples, 0.13%)tokio_postgres::client::InnerClient::with_buf (51 samples, 0.45%)tokio_postgres::query::encode_bind (47 samples, 0.42%)postgres_types::__to_sql_checked (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)bytes::bytes_mut::shared_v_drop (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (7 samples, 0.06%)postgres_protocol::message::backend::Message::parse (4 samples, 0.04%)core::str::converts::from_utf8 (3 samples, 0.03%)tokio_postgres::query::extract_row_affected (4 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (4 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (2 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.02%)tokio::runtime::context::with_scheduler (2 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.02%)__rustc::__rdl_alloc (3 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (17 samples, 0.15%)futures_channel::mpsc::channel (10 samples, 0.09%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)_xzm_free (8 samples, 0.07%)mach_absolute_time (5 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (10 samples, 0.09%)futures_channel::mpsc::Receiver<T>::next_message (9 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.03%)tokio_postgres::query::start::_{{closure}} (51 samples, 0.45%)tokio_postgres::client::Responses::poll_next (27 samples, 0.24%)postgres_protocol::message::backend::Message::parse (11 samples, 0.10%)bytes::bytes_mut::BytesMut::reserve_inner (8 samples, 0.07%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (2 samples, 0.02%)default_zone_realloc (2 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (10 samples, 0.09%)alloc::raw_vec::finish_grow (9 samples, 0.08%)_realloc (7 samples, 0.06%)_malloc_zone_realloc (6 samples, 0.05%)xzm_realloc (4 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (15 samples, 0.13%)alloc::fmt::format::format_inner (20 samples, 0.18%)core::fmt::write (18 samples, 0.16%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (16 samples, 0.14%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.03%)core::fmt::write (2 samples, 0.02%)_free (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (8 samples, 0.07%)_xzm_free (4 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (12 samples, 0.11%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (11 samples, 0.10%)_xzm_xzone_malloc_tiny (3 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (5 samples, 0.04%)tokio_postgres::client::InnerClient::send (12 samples, 0.11%)futures_channel::mpsc::channel (4 samples, 0.04%)_xzm_free (6 samples, 0.05%)mach_absolute_time (4 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (9 samples, 0.08%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (12 samples, 0.11%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (3 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (16 samples, 0.14%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (13 samples, 0.12%)alloc::raw_vec::finish_grow (7 samples, 0.06%)bytes::bytes_mut::BytesMut::split_to (6 samples, 0.05%)tokio_postgres::client::Responses::poll_next (56 samples, 0.50%)postgres_protocol::message::backend::Message::parse (38 samples, 0.34%)DYLD-STUB$$memcpy (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (8 samples, 0.07%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.03%)alloc::raw_vec::finish_grow (3 samples, 0.03%)_realloc (3 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.02%)xzm_realloc (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.02%)tokio_postgres::prepare::encode (18 samples, 0.16%)tokio_postgres::client::InnerClient::with_buf (18 samples, 0.16%)postgres_protocol::message::frontend::write_body (4 samples, 0.04%)tokio_postgres::prepare::get_type::_{{closure}} (12 samples, 0.11%)postgres_types::Type::from_oid (5 samples, 0.04%)postgres_types::type_gen::Inner::from_oid (4 samples, 0.04%)<deduplicated_symbol> (2 samples, 0.02%)tokio_postgres::client::Client::execute::_{{closure}} (339 samples, 3.01%)tok..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (151 samples, 1.34%)tokio_postgres::statement::Statement::new (6 samples, 0.05%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (342 samples, 3.04%)tok..tokio_postgres::query::start::_{{closure}} (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Client::query_opt<str>::{{closure}}> (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (10 samples, 0.09%)postgres_protocol::message::backend::Message::parse (7 samples, 0.06%)postgres_protocol::message::backend::Buffer::read_cstr (5 samples, 0.04%)tokio_postgres::query::extract_row_affected (4 samples, 0.04%)core::str::iter::SplitInternal<P>::next_back (2 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.02%)<alloc::vec::Vec<T> as fallible_iterator::FromFallibleIterator<T>>::from_fallible_iter (8 samples, 0.07%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (27 samples, 0.24%)tokio_postgres::row::Row::new (9 samples, 0.08%)tokio_postgres::client::InnerClient::send (2 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.02%)DYLD-STUB$$malloc (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (5 samples, 0.04%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (4 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (3 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (3 samples, 0.03%)postgres_protocol::message::frontend::write_body (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.04%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (3 samples, 0.03%)core::iter::traits::iterator::Iterator::unzip (10 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.05%)alloc::raw_vec::finish_grow (5 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (32 samples, 0.28%)tokio_postgres::query::encode_bind (27 samples, 0.24%)postgres_types::__to_sql_checked (3 samples, 0.03%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (8 samples, 0.07%)futures_channel::mpsc::channel (6 samples, 0.05%)_platform_memset (2 samples, 0.02%)_xzm_free (6 samples, 0.05%)mach_absolute_time (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (7 samples, 0.06%)futures_channel::mpsc::Receiver<T>::next_message (7 samples, 0.06%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.04%)tokio_postgres::query::query::_{{closure}} (67 samples, 0.60%)tokio_postgres::query::start::_{{closure}} (31 samples, 0.28%)tokio_postgres::client::Responses::poll_next (16 samples, 0.14%)postgres_protocol::message::backend::Message::parse (8 samples, 0.07%)_xzm_xzone_malloc (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.02%)_realloc (2 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.02%)alloc::fmt::format::format_inner (8 samples, 0.07%)core::fmt::write (5 samples, 0.04%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (3 samples, 0.03%)_malloc_zone_realloc (5 samples, 0.04%)xzm_realloc (2 samples, 0.02%)xzm_malloc_zone_size (2 samples, 0.02%)_realloc (10 samples, 0.09%)alloc::raw_vec::RawVec<T,A>::grow_one (15 samples, 0.13%)alloc::raw_vec::finish_grow (14 samples, 0.12%)_xzm_free (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (11 samples, 0.10%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (10 samples, 0.09%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (6 samples, 0.05%)futures_channel::mpsc::channel (5 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.04%)_xzm_free (3 samples, 0.03%)mach_absolute_time (2 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.03%)alloc::raw_vec::finish_grow (3 samples, 0.03%)postgres_protocol::message::backend::Message::parse (15 samples, 0.13%)tokio_postgres::client::Responses::poll_next (25 samples, 0.22%)DYLD-STUB$$memcpy (2 samples, 0.02%)_platform_memmove (3 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)_xzm_free (4 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (17 samples, 0.15%)alloc::raw_vec::finish_grow (15 samples, 0.13%)_realloc (15 samples, 0.13%)_malloc_zone_realloc (14 samples, 0.12%)xzm_realloc (14 samples, 0.12%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (25 samples, 0.22%)bytes::bytes_mut::BytesMut::reserve_inner (20 samples, 0.18%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.02%)core::slice::memchr::memchr_aligned (3 samples, 0.03%)tokio_postgres::prepare::encode (38 samples, 0.34%)tokio_postgres::client::InnerClient::with_buf (38 samples, 0.34%)tokio_postgres::prepare::get_type::_{{closure}} (11 samples, 0.10%)postgres_types::Type::from_oid (3 samples, 0.03%)postgres_types::type_gen::Inner::from_oid (3 samples, 0.03%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (249 samples, 2.21%)t..tokio_postgres::client::Client::query_opt::_{{closure}} (244 samples, 2.17%)t..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (126 samples, 1.12%)tokio_postgres::statement::Statement::new (2 samples, 0.02%)torii::etl::decoder::DecoderId::new (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)torii_common::felt_to_blob (13 samples, 0.12%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (7 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (4 samples, 0.04%)torii_common::u256_to_blob (3 samples, 0.03%)_xzm_free (2 samples, 0.02%)core::hash::BuildHasher::hash_one (7 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.04%)hashbrown::map::HashMap<K,V,S,A>::insert (5 samples, 0.04%)core::hash::BuildHasher::hash_one (3 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.03%)core::hash::BuildHasher::hash_one (2 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.02%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (5 samples, 0.04%)tokio_postgres::client::InnerClient::send (2 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (5 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (6 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (6 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (3 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (3 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.04%)tokio_postgres::query::encode_bind (3 samples, 0.03%)tokio_postgres::client::Responses::poll_next (2 samples, 0.02%)postgres_protocol::message::backend::Message::parse (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.02%)tokio_postgres::query::start::_{{closure}} (5 samples, 0.04%)tokio_postgres::client::Responses::poll_next (4 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.02%)alloc::fmt::format::format_inner (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)mach_absolute_time (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (6 samples, 0.05%)tokio_postgres::prepare::encode (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (2 samples, 0.02%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (39 samples, 0.35%)tokio_postgres::client::Client::execute::_{{closure}} (39 samples, 0.35%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (16 samples, 0.14%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (4 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (4 samples, 0.04%)futures_channel::mpsc::channel (2 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (10 samples, 0.09%)tokio_postgres::query::start::_{{closure}} (7 samples, 0.06%)alloc::fmt::format::format_inner (2 samples, 0.02%)core::fmt::write (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (2 samples, 0.02%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (32 samples, 0.28%)tokio_postgres::client::Client::query_opt::_{{closure}} (30 samples, 0.27%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (10 samples, 0.09%)tokio_postgres::prepare::encode (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)torii_common::felt_to_blob (2 samples, 0.02%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (118 samples, 1.05%)torii_common::u256_to_blob (3 samples, 0.03%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (3 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (3 samples, 0.03%)postgres_protocol::message::backend::Buffer::read_cstr (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (4 samples, 0.04%)postgres_protocol::message::backend::Message::parse (4 samples, 0.04%)std::io::Read::read_exact (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (5 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (3 samples, 0.03%)tokio_postgres::query::encode_bind (3 samples, 0.03%)tokio_postgres::client::InnerClient::send (2 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (9 samples, 0.08%)tokio_postgres::query::start::_{{closure}} (6 samples, 0.05%)tokio_postgres::client::Responses::poll_next (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (3 samples, 0.03%)torii_erc20::storage::Erc20Storage::pg_get_balances_batch::_{{closure}} (32 samples, 0.28%)tokio_postgres::client::Client::query_opt::_{{closure}} (28 samples, 0.25%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (9 samples, 0.08%)tokio_postgres::prepare::encode (5 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (5 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.03%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (940 samples, 8.36%)<torii_erc20..<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (3 samples, 0.03%)tokio_postgres::row::Row::new (2 samples, 0.02%)<alloc::vec::Vec<T> as fallible_iterator::FromFallibleIterator<T>>::from_fallible_iter (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.03%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.03%)_xzm_free (2 samples, 0.02%)_platform_memset (2 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (4 samples, 0.04%)tokio_postgres::query::start::_{{closure}} (4 samples, 0.04%)tokio_postgres::client::Responses::poll_next (4 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (14 samples, 0.12%)tokio_postgres::client::Client::query_raw::_{{closure}} (11 samples, 0.10%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (7 samples, 0.06%)tokio_postgres::client::Responses::poll_next (3 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (4 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (6 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (6 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.02%)tokio_postgres::client::InnerClient::send (3 samples, 0.03%)futures_channel::mpsc::channel (2 samples, 0.02%)tokio_postgres::query::start::_{{closure}} (5 samples, 0.04%)alloc::fmt::format::format_inner (3 samples, 0.03%)core::fmt::write (2 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (2 samples, 0.02%)tokio_postgres::client::Responses::poll_next (3 samples, 0.03%)postgres_protocol::message::backend::Message::parse (2 samples, 0.02%)tokio_postgres::prepare::encode (2 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.02%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (24 samples, 0.21%)tokio_postgres::client::Client::execute::_{{closure}} (24 samples, 0.21%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (9 samples, 0.08%)<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (43 samples, 0.38%)torii::etl::decoder::DecoderId::new (4 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.02%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (1,008 samples, 8.96%)<torii::etl::..DYLD-STUB$$free (2 samples, 0.02%)_free (2 samples, 0.02%)_xzm_free (7 samples, 0.06%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (9 samples, 0.08%)_xzm_free (7 samples, 0.06%)torii::run::_{{closure}}::_{{closure}} (3,287 samples, 29.22%)torii::run::_{{closure}}::_{{closure}}hashbrown::map::HashMap<K,V,S,A>::insert (5 samples, 0.04%)core::hash::BuildHasher::hash_one (5 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.03%)torii_erc1155::storage::Erc1155Storage::new::_{{closure}}::_{{closure}} (2 samples, 0.02%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (2 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (3 samples, 0.03%)_xzm_free (2 samples, 0.02%)_xzm_free (12 samples, 0.11%)_platform_memset (2 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (26 samples, 0.23%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (38 samples, 0.34%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (3 samples, 0.03%)_free (2 samples, 0.02%)_platform_memmove (15 samples, 0.13%)_xzm_free (2 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (28 samples, 0.25%)bytes::bytes_mut::shared_v_drop (8 samples, 0.07%)_xzm_free (4 samples, 0.04%)<tokio::net::tcp::stream::TcpStream as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (30 samples, 0.27%)bytes::bytes_mut::BytesMut::split_to (5 samples, 0.04%)<tokio_postgres::socket::Socket as tokio::io::async_read::AsyncRead>::poll_read (5 samples, 0.04%)bytes::bytes_mut::BytesMut::split_to (4 samples, 0.04%)DYLD-STUB$$__recvfrom (2 samples, 0.02%)__recvfrom (1,635 samples, 14.53%)__recvfrom<&std::net::tcp::TcpStream as std::io::Read>::read (1,645 samples, 14.62%)<&std::net::tcp::TcpSt..recv (3 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,885 samples, 16.76%)<&mio::net::tcp::stream::T..__recvfrom (236 samples, 2.10%)_..tokio::runtime::io::registration::Registration::poll_ready (23 samples, 0.20%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (16 samples, 0.14%)tokio::io::poll_evented::PollEvented<E>::poll_read (1,923 samples, 17.09%)tokio::io::poll_evented::P..tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (2 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (1,994 samples, 17.73%)<tokio_util::codec::framed_i..bytes::bytes_mut::BytesMut::advance_unchecked (4 samples, 0.04%)DYLD-STUB$$send (3 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Write>::write (1,076 samples, 9.57%)<&std::net::tc..__sendto (1,071 samples, 9.52%)__sendto<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1,225 samples, 10.89%)<&mio::net::tcp:..__sendto (148 samples, 1.32%)tokio::runtime::io::registration::Registration::poll_ready (5 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (1,249 samples, 11.10%)<tokio_util::cod..tokio::io::poll_evented::PollEvented<E>::poll_write (1,239 samples, 11.01%)tokio::io::poll_..DYLD-STUB$$memcpy (3 samples, 0.03%)_free (2 samples, 0.02%)_platform_memmove (8 samples, 0.07%)DYLD-STUB$$_platform_bzero (4 samples, 0.04%)__bzero (2 samples, 0.02%)_xzm_free (32 samples, 0.28%)mach_absolute_time (3 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (7 samples, 0.06%)<std::sys::sync::mutex::pthread::Mutex as core::ops::drop::Drop>::drop (3 samples, 0.03%)_free (4 samples, 0.04%)_xzm_free (9 samples, 0.08%)DYLD-STUB$$_platform_bzero (2 samples, 0.02%)DYLD-STUB$$free (3 samples, 0.03%)_free (4 samples, 0.04%)__bzero (3 samples, 0.03%)_xzm_free (24 samples, 0.21%)_platform_memset (2 samples, 0.02%)free (2 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (38 samples, 0.34%)xzm_malloc_zone_try_free_default (3 samples, 0.03%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (58 samples, 0.52%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.02%)futures_channel::mpsc::BoundedSenderInner<T>::poll_unparked (4 samples, 0.04%)<deduplicated_symbol> (8 samples, 0.07%)DYLD-STUB$$malloc (3 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.02%)std::sys::sync::once_box::OnceBox<T>::initialize (4 samples, 0.04%)std::sys::pal::unix::sync::mutex::Mutex::init (2 samples, 0.02%)pthread_mutex_init (2 samples, 0.02%)_tlv_get_addr (2 samples, 0.02%)tokio::runtime::context::with_scheduler (6 samples, 0.05%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (2 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (9 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (18 samples, 0.16%)tokio::runtime::task::state::State::transition_to_notified_by_val (3 samples, 0.03%)futures_channel::mpsc::Sender<T>::start_send (49 samples, 0.44%)xzm_malloc_zone_malloc_type_malloc (2 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (4 samples, 0.04%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (3,553 samples, 31.59%)<tokio_postgres::connection::Connection<S,T> as cor..mach_absolute_time (5 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (5 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (4 samples, 0.04%)_platform_memmove (2 samples, 0.02%)_xzm_free (2 samples, 0.02%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (3,576 samples, 31.79%)torii_erc20::storage::Erc20Storage::new::_{{closure..futures_channel::mpsc::Sender<T>::start_send (2 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (2 samples, 0.02%)_platform_memmove (2 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (2 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (88 samples, 0.78%)tokio::io::poll_evented::PollEvented<E>::poll_read (83 samples, 0.74%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (82 samples, 0.73%)<&std::net::tcp::TcpStream as std::io::Read>::read (82 samples, 0.73%)__recvfrom (82 samples, 0.73%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (53 samples, 0.47%)tokio::io::poll_evented::PollEvented<E>::poll_write (53 samples, 0.47%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (53 samples, 0.47%)<&std::net::tcp::TcpStream as std::io::Write>::write (53 samples, 0.47%)__sendto (53 samples, 0.47%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (3 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.03%)_xzm_free (2 samples, 0.02%)<deduplicated_symbol> (7,059 samples, 62.75%)<deduplicated_symbol>torii_erc721::storage::Erc721Storage::new::_{{closure}}::_{{closure}} (164 samples, 1.46%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (162 samples, 1.44%)futures_channel::mpsc::Sender<T>::start_send (5 samples, 0.04%)<deduplicated_symbol> (3 samples, 0.03%)hyper::body::incoming::Sender::poll_ready (4 samples, 0.04%)_xzm_xzone_malloc_tiny (5 samples, 0.04%)hyper::body::incoming::Sender::try_send_data (9 samples, 0.08%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (9 samples, 0.08%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.02%)SSLRecordFreeInternal (2 samples, 0.02%)_xzm_xzone_free_freelist (2 samples, 0.02%)_platform_memmove (5 samples, 0.04%)_xzm_xzone_malloc_small_freelist (2 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (225 samples, 2.00%)<..__recvfrom (225 samples, 2.00%)_..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (264 samples, 2.35%)<..__recvfrom (38 samples, 0.34%)security_framework::secure_transport::read_func (269 samples, 2.39%)se..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (268 samples, 2.38%)<h..tokio::io::poll_evented::PollEvented<E>::poll_read (268 samples, 2.38%)to..tokio::runtime::io::registration::Registration::poll_ready (2 samples, 0.02%)ccmode_gcm_finalize (2 samples, 0.02%)ccgcm_finalize (4 samples, 0.04%)timingsafe_restore_if_supported (2 samples, 0.02%)Decrypt_Main_Loop (8 samples, 0.07%)Decrypt_Main_Loop (59 samples, 0.52%)ccaes_vng_gcm_decrypt (61 samples, 0.54%)ccgcm_update (72 samples, 0.64%)timingsafe_enable_if_supported (2 samples, 0.02%)SSLDecryptRecord (78 samples, 0.69%)CCSymmAEADDecrypt (78 samples, 0.69%)_platform_memmove (21 samples, 0.19%)timingsafe_enable_if_supported (2 samples, 0.02%)ccgcm_gmac (3 samples, 0.03%)ccmode_gcm_reset (2 samples, 0.02%)memset_s (2 samples, 0.02%)_platform_memset (2 samples, 0.02%)gcm_init (4 samples, 0.04%)ccmode_gcm_init (8 samples, 0.07%)timingsafe_enable_if_supported (2 samples, 0.02%)ccgcm_init_with_iv (12 samples, 0.11%)tls_record_decrypt (115 samples, 1.02%)SSLRecordReadInternal (396 samples, 3.52%)SSL.._platform_memmove (6 samples, 0.05%)SSLRead (406 samples, 3.61%)SSLR..<deduplicated_symbol> (408 samples, 3.63%)<ded..__bzero (8 samples, 0.07%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (432 samples, 3.84%)<tok.._platform_memset (3 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (437 samples, 3.88%)<hyp..__bzero (5 samples, 0.04%)xzm_chunk_mark_used (4 samples, 0.04%)_xzm_reclaim_mark_used (4 samples, 0.04%)mach_vm_reclaim_update_kernel_accounting (3 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (12 samples, 0.11%)_xzm_xzone_find_and_malloc_from_freelist_chunk (9 samples, 0.08%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (479 samples, 4.26%)hyper..hyper::proto::h1::decode::Decoder::decode (479 samples, 4.26%)hyper..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (479 samples, 4.26%)<hype..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (476 samples, 4.23%)hyper..bytes::bytes_mut::BytesMut::reserve_inner (36 samples, 0.32%)_xzm_xzone_malloc_small_freelist (23 samples, 0.20%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (2 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (4 samples, 0.04%)hyper::proto::h1::io::Buffered<T,B>::parse (4 samples, 0.04%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (2 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (2 samples, 0.02%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.02%)SSLRead (2 samples, 0.02%)SSLRecordReadInternal (2 samples, 0.02%)hyper::proto::h1::io::Buffered<T,B>::poll_flush (7 samples, 0.06%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (7 samples, 0.06%)tokio_native_tls::TlsStream<S>::with_context (7 samples, 0.06%)SSLWrite (7 samples, 0.06%)SSLRecordServiceWriteQueueInternal (7 samples, 0.06%)security_framework::secure_transport::write_func (7 samples, 0.06%)tokio::io::poll_evented::PollEvented<E>::poll_write (7 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (7 samples, 0.06%)<&std::net::tcp::TcpStream as std::io::Write>::write (7 samples, 0.06%)__sendto (7 samples, 0.06%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (508 samples, 4.52%)<futu..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (508 samples, 4.52%)<futu..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (508 samples, 4.52%)<hype..hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (508 samples, 4.52%)hyper..<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (2 samples, 0.02%)tokio::runtime::task::state::State::transition_to_idle (10 samples, 0.09%)tokio::runtime::task::state::State::transition_to_running (10 samples, 0.09%)tokio::runtime::task::harness::Harness<T,S>::poll (7,596 samples, 67.53%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::scheduler::multi_thread::worker::Context::run_task (7,611 samples, 67.66%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::task::raw::poll (3 samples, 0.03%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (9 samples, 0.08%)tokio::runtime::scheduler::multi_thread::worker::Context::run (11,209 samples, 99.64%)tokio::runtime::scheduler::multi_thread::worker::Context::runall (11,249 samples, 100%)thread_start (11,216 samples, 99.71%)thread_start_pthread_start (11,216 samples, 99.71%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (11,216 samples, 99.71%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (11,216 samples, 99.71%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (11,216 samples, 99.71%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (11,216 samples, 99.71%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (11,216 samples, 99.71%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (11,216 samples, 99.71%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (11,216 samples, 99.71%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (11,212 samples, 99.67%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (11,212 samples, 99.67%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (11,212 samples, 99.67%)tokio::runtime::context::scoped::Scoped<T>::set \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-5.svg b/bins/torii-tokens/flamegraph-5.svg new file mode 100644 index 0000000..a9c0ee9 --- /dev/null +++ b/bins/torii-tokens/flamegraph-5.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const (1 samples, 0.02%)dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_0::operator()() const (1 samples, 0.02%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.02%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.02%)dyld4::PrebuiltLoader::runInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.02%)mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.02%)mach_o::Header::forEachLoadCommand(void (load_command const*, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.02%)invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)__CFInitialize (1 samples, 0.02%)_CFStringGetUserDefaultEncoding (1 samples, 0.02%)_CFGetEUID (1 samples, 0.02%)__CFGetUGIDs (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)___CFCanChangeEUIDs_block_invoke (1 samples, 0.02%)__sysctl (1 samples, 0.02%)dyld4::APIs::runAllInitializersForMain() (2 samples, 0.04%)dyld4::PrebuiltLoader::runInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.02%)mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.02%)mach_o::Header::forEachLoadCommand(void (load_command const*, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.02%)invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.02%)libSystem_initializer (1 samples, 0.02%)__malloc_init (1 samples, 0.02%)xzm_main_malloc_zone_create (1 samples, 0.02%)mfm_initialize (1 samples, 0.02%)_kernelrpc_mach_vm_map_trap (1 samples, 0.02%)dyld4::Loader::applyFixupsGeneric(Diagnostics&, dyld4::RuntimeState&, unsigned long long, dyld3::Array<void const*> const&, dyld3::Array<void const*> const&, bool, dyld3::Array<dyld4::Loader::MissingFlatLazySymbol> const&) const (1 samples, 0.02%)dyld3::MachOAnalyzer::forEachRebaseLocation_Opcodes(Diagnostics&, void (unsigned long long, bool&) block_pointer) const (1 samples, 0.02%)dyld3::MachOAnalyzer::forEachRebase_Opcodes(Diagnostics&, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, void (char const*, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, bool, unsigned int, unsigned char, unsigned long long, dyld3::MachOAnalyzer::Rebase, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in dyld4::Loader::applyFixupsGeneric(Diagnostics&, dyld4::RuntimeState&, unsigned long long, dyld3::Array<void const*> const&, dyld3::Array<void const*> const&, bool, dyld3::Array<dyld4::Loader::MissingFlatLazySymbol> const&) const (1 samples, 0.02%)dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (4 samples, 0.08%)dyld4::JustInTimeLoader::applyFixups(Diagnostics&, dyld4::RuntimeState&, dyld4::DyldCacheDataConstLazyScopedWriter&, bool, lsl::Vector<std::__1::pair<dyld4::Loader const*, char const*>>*) const (2 samples, 0.04%)dyld4::Loader::forEachBindTarget(Diagnostics&, dyld4::RuntimeState&, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer) const (1 samples, 0.02%)dyld3::MachOAnalyzer::withVMLayout(Diagnostics&, void (mach_o::Layout const&) block_pointer) const (1 samples, 0.02%)invocation function for block in dyld4::Loader::forEachBindTarget(Diagnostics&, dyld4::RuntimeState&, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer) const (1 samples, 0.02%)mach_o::Fixups::forEachBindTarget_Opcodes(Diagnostics&, bool, void (mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer, void (mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer) const (1 samples, 0.02%)mach_o::Fixups::forEachBindUnified_Opcodes(Diagnostics&, bool, void (unsigned long long, unsigned int, mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer, void (unsigned long long, unsigned int, mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer) const (1 samples, 0.02%)mach_o::Fixups::forEachBind_OpcodesRegular(Diagnostics&, void (char const*, bool, bool, unsigned int, int, unsigned int, unsigned int, unsigned long long, unsigned char, char const*, bool, bool, unsigned long long, bool, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in mach_o::Fixups::forEachBindTarget_Opcodes(Diagnostics&, bool, void (mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer, void (mach_o::Fixups::BindTargetInfo const&, bool&) block_pointer) const (1 samples, 0.02%)invocation function for block in dyld4::Loader::forEachBindTarget(Diagnostics&, dyld4::RuntimeState&, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer, void (dyld4::Loader::ResolvedSymbol const&, bool&) block_pointer) const (1 samples, 0.02%)dyld4::Loader::resolveSymbol(Diagnostics&, dyld4::RuntimeState&, int, char const*, bool, bool, void (unsigned int, unsigned int, dyld4::Loader::ResolvedSymbol const&) block_pointer, bool) const (1 samples, 0.02%)dyld4::Loader::hasExportedSymbol(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::ExportedSymbolMode, dyld4::Loader::ResolverMode, dyld4::Loader::ResolvedSymbol*, dyld3::Array<dyld4::Loader const*>*) const (1 samples, 0.02%)dyld4::Loader::hasExportedSymbol(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::ExportedSymbolMode, dyld4::Loader::ResolverMode, dyld4::Loader::ResolvedSymbol*, dyld3::Array<dyld4::Loader const*>*) const (1 samples, 0.02%)dyld3::MachOFile::trieWalk(Diagnostics&, unsigned char const*, unsigned char const*, char const*) (1 samples, 0.02%)tokio::runtime::builder::Builder::build (1 samples, 0.02%)tokio::runtime::driver::Driver::new (1 samples, 0.02%)tokio::runtime::signal::Driver::new (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.02%)<sqlx_postgres::row::PgRow as sqlx_core::row::Row>::try_get_raw (2 samples, 0.04%)_platform_memmove (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)sqlx_postgres::any::_<impl core::convert::TryFrom<&sqlx_postgres::type_info::PgTypeInfo> for sqlx_core::any::type_info::AnyTypeInfo>::try_from (1 samples, 0.02%)<T as futures_util::fns::FnMut1<A>>::call_mut (11 samples, 0.21%)sqlx_postgres::any::_<impl core::convert::TryFrom<&sqlx_postgres::row::PgRow> for sqlx_core::any::row::AnyRow>::try_from (8 samples, 0.15%)sqlx_postgres::types::str::_<impl sqlx_core::decode::Decode<sqlx_postgres::database::Postgres> for alloc::string::String>::decode (3 samples, 0.06%)core::str::converts::from_utf8 (2 samples, 0.04%)sqlx_core::ext::async_stream::Yielder<T>::yield::_{{closure}} (1 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (3 samples, 0.06%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (3 samples, 0.06%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (2 samples, 0.04%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (2 samples, 0.04%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (17 samples, 0.32%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (17 samples, 0.32%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (17 samples, 0.32%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (17 samples, 0.32%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (17 samples, 0.32%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (15 samples, 0.28%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (4 samples, 0.08%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.08%)std::sys::pal::unix::sync::mutex::Mutex::lock (1 samples, 0.02%)<sqlx_core::any::row::AnyRow as sqlx_core::row::Row>::try_get (2 samples, 0.04%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)alloc::fmt::format::format_inner (1 samples, 0.02%)core::fmt::write (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)__rustc::__rdl_realloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (3 samples, 0.06%)hashbrown::raw::RawTable<T,A>::reserve_rehash (3 samples, 0.06%)core::hash::BuildHasher::hash_one (2 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (17 samples, 0.32%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (16 samples, 0.30%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (7 samples, 0.13%)starknet_types_core::felt::Felt::from_hex (18 samples, 0.34%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)<tokio_postgres::config::Config as core::str::traits::FromStr>::from_str (1 samples, 0.02%)tokio_postgres::config::UrlParser::take_until (1 samples, 0.02%)postgres_protocol::authentication::sasl::hi (2 samples, 0.04%)sha2::sha256::compress256 (1 samples, 0.02%)tokio_postgres::connect::_{{closure}} (11 samples, 0.21%)tokio_postgres::connect::connect_once::_{{closure}} (10 samples, 0.19%)tokio_postgres::connect_raw::connect_raw::_{{closure}} (10 samples, 0.19%)postgres_protocol::authentication::sasl::ScramSha256::update (10 samples, 0.19%)sha2::sha256::compress256 (8 samples, 0.15%)tonic_reflection::server::Builder::build_v1 (1 samples, 0.02%)tonic_reflection::server::ReflectionServiceState::new (1 samples, 0.02%)tonic_reflection::server::ReflectionServiceState::process_message (1 samples, 0.02%)alloc::fmt::format::format_inner (1 samples, 0.02%)core::fmt::write (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)sqlx::any::install_default_drivers (1 samples, 0.02%)std::sys::sync::once::queue::Once::call (1 samples, 0.02%)std::sync::poison::once::Once::call_once::_{{closure}} (1 samples, 0.02%)sqlx_core::any::driver::install_drivers (1 samples, 0.02%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (1 samples, 0.02%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (1 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (1 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (1 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (1 samples, 0.02%)sha2::sha256::compress256 (1 samples, 0.02%)torii::etl::engine_db::EngineDb::new::_{{closure}} (4 samples, 0.08%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.04%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.04%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.04%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.04%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.04%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.04%)sha2::sha256::compress256 (2 samples, 0.04%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.04%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.04%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.04%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.04%)sha2::sha256::compress256 (2 samples, 0.04%)torii::run::_{{closure}} (3 samples, 0.06%)torii::etl::engine_db::EngineDb::new::_{{closure}} (3 samples, 0.06%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (1 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (1 samples, 0.02%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.02%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.02%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (1 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (1 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (1 samples, 0.02%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (1 samples, 0.02%)sha2::sha256::compress256 (1 samples, 0.02%)start (70 samples, 1.32%)main (66 samples, 1.24%)std::rt::lang_start_internal (66 samples, 1.24%)std::rt::lang_start::_{{closure}} (66 samples, 1.24%)std::sys::backtrace::__rust_begin_short_backtrace (66 samples, 1.24%)torii_tokens::main (66 samples, 1.24%)tokio::runtime::park::CachedParkThread::block_on (65 samples, 1.22%)torii_tokens::run_indexer::_{{closure}} (64 samples, 1.20%)tracing_core::event::Event::dispatch (1 samples, 0.02%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (1 samples, 0.02%)std::thread::local::LocalKey<T>::with (1 samples, 0.02%)_gai_nat64_second_pass (1 samples, 0.02%)nw_nat64_v4_address_requires_synthesis (1 samples, 0.02%)nw_path_create_evaluator_for_endpoint (1 samples, 0.02%)nw_path_create_evaluator_for_endpoint_no_evaluate (1 samples, 0.02%)_nw_parameters_createTm (1 samples, 0.02%)networkd_settings_get_int64 (1 samples, 0.02%)0x1961e7d5c (1 samples, 0.02%)0x1961e7ea4 (1 samples, 0.02%)String.init(cString:) (1 samples, 0.02%)specialized static String._uncheckedFromUTF8(_:isASCII:) (1 samples, 0.02%)specialized static __StringStorage.create(initializingFrom:codeUnitCapacity:isASCII:) (1 samples, 0.02%)_allocateStringStorage(codeUnitCapacity:) (1 samples, 0.02%)type metadata accessor for __StringStorage (1 samples, 0.02%)objc_opt_self (1 samples, 0.02%)_nw_parameters_create_legacy_tcp_socket (1 samples, 0.02%)0x196305ff0 (1 samples, 0.02%)0x195ff2268 (1 samples, 0.02%)0x196380860 (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)0x196052324 (1 samples, 0.02%)nw_context_copy_implicit_context (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)__nw_context_copy_implicit_context_block_invoke (1 samples, 0.02%)-[NWConcrete_nw_context initWithIdentifier:] (1 samples, 0.02%)networkd_settings_get_int64_with_default (1 samples, 0.02%)networkd_settings_init (1 samples, 0.02%)networkd_settings_read_from_file() (1 samples, 0.02%)__open (1 samples, 0.02%)nw_path_libinfo_path_check (3 samples, 0.06%)nw_path_create_evaluator_for_endpoint (1 samples, 0.02%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (1 samples, 0.02%)nw_path_create_necp_parameters (1 samples, 0.02%)nw_parameters_get_upper_transport_protocol (1 samples, 0.02%)_nw_protocol_options_is_udp (1 samples, 0.02%)__swift_instantiateConcreteTypeFromMangledNameV2 (1 samples, 0.02%)__sendmsg_nocancel (1 samples, 0.02%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (6 samples, 0.11%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (6 samples, 0.11%)getaddrinfo (6 samples, 0.11%)si_addrinfo (6 samples, 0.11%)search_addrinfo (2 samples, 0.04%)mdns_addrinfo (2 samples, 0.04%)_mdns_search_ex (2 samples, 0.04%)_mdns_query_start (2 samples, 0.04%)DNSServiceQueryRecordInternal (2 samples, 0.04%)deliver_request (1 samples, 0.02%)__sendto_nocancel (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (1 samples, 0.02%)<std::time::Instant as core::ops::arith::Sub>::sub (1 samples, 0.02%)__floatuntidf (3 samples, 0.06%)pow (3 samples, 0.06%)DYLD-STUB$$mach_timebase_info (1 samples, 0.02%)mach_absolute_time (24 samples, 0.45%)clock_gettime_nsec_np (29 samples, 0.55%)mach_timebase_info (3 samples, 0.06%)std::sys::pal::unix::time::Timespec::now (34 samples, 0.64%)clock_gettime (34 samples, 0.64%)mach_absolute_time (4 samples, 0.08%)std::sys::pal::unix::time::Timespec::sub_timespec (1 samples, 0.02%)DYLD-STUB$$clock_gettime (1 samples, 0.02%)DYLD-STUB$$mach_absolute_time (3 samples, 0.06%)mach_absolute_time (6 samples, 0.11%)clock_gettime_nsec_np (15 samples, 0.28%)mach_timebase_info (2 samples, 0.04%)std::time::Instant::elapsed (21 samples, 0.39%)std::sys::pal::unix::time::Timespec::now (20 samples, 0.38%)clock_gettime (17 samples, 0.32%)mach_absolute_time (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (7 samples, 0.13%)tokio::runtime::scheduler::multi_thread::park::Parker::park (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (10 samples, 0.19%)__psynch_cvwait (5 samples, 0.09%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (7 samples, 0.13%)parking_lot::condvar::Condvar::wait_until_internal (7 samples, 0.13%)_pthread_cond_wait (2 samples, 0.04%)__psynch_cvwait (2 samples, 0.04%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (1 samples, 0.02%)tokio::runtime::signal::Driver::process (1 samples, 0.02%)clock_gettime (1 samples, 0.02%)DYLD-STUB$$clock_gettime (1 samples, 0.02%)DYLD-STUB$$mach_absolute_time (2 samples, 0.04%)DYLD-STUB$$mach_timebase_info (1 samples, 0.02%)clock_gettime_nsec_np (71 samples, 1.34%)mach_absolute_time (64 samples, 1.20%)mach_absolute_time (8 samples, 0.15%)std::sys::pal::unix::time::Timespec::now (85 samples, 1.60%)clock_gettime (82 samples, 1.54%)mach_timebase_info (1 samples, 0.02%)std::time::Instant::now (3 samples, 0.06%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (5 samples, 0.09%)kevent (266 samples, 5.00%)keventmio::poll::Poll::poll (1,139 samples, 21.42%)mio::poll::Poll::pollkevent (1,110 samples, 20.87%)kevent_tlv_get_addr (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (8 samples, 0.15%)tokio::runtime::context::with_scheduler (5 samples, 0.09%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (3 samples, 0.06%)tokio::runtime::task::raw::schedule (3 samples, 0.06%)tokio::runtime::io::driver::Driver::turn (1,478 samples, 27.79%)tokio::runtime::io::driver::Driver::turntokio::runtime::io::scheduled_io::ScheduledIo::wake (38 samples, 0.71%)tokio::runtime::task::waker::wake_by_val (20 samples, 0.38%)tokio::runtime::task::state::State::transition_to_notified_by_val (6 samples, 0.11%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (1 samples, 0.02%)tokio::runtime::signal::Driver::process (9 samples, 0.17%)tokio::runtime::time::wheel::Wheel::next_expiration (1 samples, 0.02%)tokio::runtime::time::wheel::level::Level::next_expiration (1 samples, 0.02%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (12 samples, 0.23%)tokio::runtime::time::wheel::Wheel::poll (6 samples, 0.11%)tokio::runtime::time::wheel::Wheel::next_expiration (4 samples, 0.08%)tokio::runtime::time::wheel::level::Level::next_expiration (3 samples, 0.06%)tokio::runtime::time::Driver::park_internal (1,607 samples, 30.22%)tokio::runtime::time::Driver::park_internaltokio::runtime::time::wheel::Wheel::next_expiration (2 samples, 0.04%)tokio::runtime::time::wheel::level::Level::next_expiration (2 samples, 0.04%)tokio::runtime::scheduler::multi_thread::park::Parker::park (1,647 samples, 30.97%)tokio::runtime::scheduler::multi_thread::park::Par..tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (1 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.04%)clock_gettime (2 samples, 0.04%)clock_gettime_nsec_np (2 samples, 0.04%)mach_absolute_time (1 samples, 0.02%)kevent (3 samples, 0.06%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (1,683 samples, 31.65%)tokio::runtime::scheduler::multi_thread::worker::Co..tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (16 samples, 0.30%)tokio::runtime::time::Driver::park_internal (16 samples, 0.30%)tokio::runtime::io::driver::Driver::turn (14 samples, 0.26%)mio::poll::Poll::poll (10 samples, 0.19%)kevent (10 samples, 0.19%)<deduplicated_symbol> (1 samples, 0.02%)mio::waker::Waker::wake (1 samples, 0.02%)kevent (1 samples, 0.02%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (5 samples, 0.09%)_tlv_get_addr (3 samples, 0.06%)_platform_memmove (1 samples, 0.02%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (5 samples, 0.09%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (4 samples, 0.08%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (4 samples, 0.08%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (4 samples, 0.08%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.08%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (4 samples, 0.08%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (4 samples, 0.08%)tokio::runtime::context::with_scheduler (4 samples, 0.08%)<deduplicated_symbol> (4 samples, 0.08%)mio::waker::Waker::wake (4 samples, 0.08%)kevent (4 samples, 0.08%)_platform_memmove (1 samples, 0.02%)encoding_rs::Encoding::decode_without_bom_handling (1 samples, 0.02%)encoding_rs::utf_8::utf8_valid_up_to (1 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (12 samples, 0.23%)http_body_util::collected::Collected<B>::to_bytes (5 samples, 0.09%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (5 samples, 0.09%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (5 samples, 0.09%)_platform_memmove (5 samples, 0.09%)serde_core::ser::Serializer::collect_seq (1 samples, 0.02%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (1 samples, 0.02%)serde_core::ser::SerializeMap::serialize_entry (1 samples, 0.02%)serde_json::ser::format_escaped_str (1 samples, 0.02%)DYLD-STUB$$memcpy (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (2 samples, 0.04%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.06%)_platform_memmove (1 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.04%)_platform_memmove (5 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (9 samples, 0.17%)_xzm_xzone_malloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17 samples, 0.32%)alloc::raw_vec::RawVec<T,A>::grow_one (7 samples, 0.13%)alloc::raw_vec::finish_grow (6 samples, 0.11%)_realloc (6 samples, 0.11%)_malloc_zone_realloc (5 samples, 0.09%)xzm_realloc (3 samples, 0.06%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.02%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)_xzm_xzone_malloc (2 samples, 0.04%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)_xzm_xzone_malloc (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (10 samples, 0.19%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.19%)alloc::raw_vec::finish_grow (1 samples, 0.02%)DYLD-STUB$$memcmp (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (33 samples, 0.62%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (33 samples, 0.62%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.08%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (3 samples, 0.06%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.04%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (38 samples, 0.71%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (39 samples, 0.73%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (43 samples, 0.81%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (43 samples, 0.81%)_platform_memcmp (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)_platform_memmove (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.13%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.02%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)xzm_chunk_mark_used (1 samples, 0.02%)_xzm_reclaim_mark_used (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.02%)_platform_memmove (2 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)xzm_chunk_mark_used (1 samples, 0.02%)_xzm_reclaim_mark_used (1 samples, 0.02%)_xzm_reclaim_mark_used_locked (1 samples, 0.02%)mach_vm_reclaim_try_cancel (1 samples, 0.02%)mach_absolute_time (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.09%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.19%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (12 samples, 0.23%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.04%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (21 samples, 0.39%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (21 samples, 0.39%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.02%)DYLD-STUB$$memcmp (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (22 samples, 0.41%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (66 samples, 1.24%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66 samples, 1.24%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66 samples, 1.24%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (66 samples, 1.24%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (67 samples, 1.26%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (67 samples, 1.26%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (67 samples, 1.26%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.02%)_platform_memcmp (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)DYLD-STUB$$free (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (11 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (11 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (10 samples, 0.19%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (5 samples, 0.09%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.06%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.06%)serde_json::de::Deserializer<R>::parse_integer (2 samples, 0.04%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_malloc_zone_realloc (4 samples, 0.08%)xzm_realloc (3 samples, 0.06%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (7 samples, 0.13%)alloc::raw_vec::finish_grow (5 samples, 0.09%)_realloc (5 samples, 0.09%)xzm_malloc_zone_size (1 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)DYLD-STUB$$realloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (9 samples, 0.17%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.08%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.06%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (20 samples, 0.38%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.24%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (40 samples, 0.75%)serde_core::de::Deserializer::__deserialize_content_v1 (28 samples, 0.53%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.09%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (143 samples, 2.69%)<s..serde_json::de::from_str (129 samples, 2.43%)se..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (129 samples, 2.43%)<&..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (129 samples, 2.43%)<s..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (129 samples, 2.43%)<s..serde_core::de::Deserializer::__deserialize_content_v1 (50 samples, 0.94%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (50 samples, 0.94%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (50 samples, 0.94%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (50 samples, 0.94%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (50 samples, 0.94%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (48 samples, 0.90%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.02%)<&mut A as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)<core::marker::PhantomData<T> as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.02%)<core::marker::PhantomData<T> as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.02%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.04%)_platform_memmove (3 samples, 0.06%)_xzm_xzone_malloc (1 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (8 samples, 0.15%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (12 samples, 0.23%)serde::private::de::content::content_clone (10 samples, 0.19%)serde::private::de::content::content_clone (9 samples, 0.17%)serde::private::de::content::content_clone (1 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (26 samples, 0.49%)starknet_types_core::felt::Felt::from_hex (26 samples, 0.49%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (26 samples, 0.49%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (22 samples, 0.41%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (14 samples, 0.26%)_xzm_free (2 samples, 0.04%)_xzm_xzone_malloc_small_freelist (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (32 samples, 0.60%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (32 samples, 0.60%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (33 samples, 0.62%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (33 samples, 0.62%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (21 samples, 0.39%)starknet_types_core::felt::Felt::from_hex (21 samples, 0.39%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (21 samples, 0.39%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (18 samples, 0.34%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (6 samples, 0.11%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (22 samples, 0.41%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (23 samples, 0.43%)_xzm_free_outlined (1 samples, 0.02%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (74 samples, 1.39%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (25 samples, 0.47%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (25 samples, 0.47%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (5 samples, 0.09%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_xzone_malloc (3 samples, 0.06%)<alloc::string::String as core::clone::Clone>::clone (9 samples, 0.17%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (24 samples, 0.45%)serde::private::de::content::content_clone (23 samples, 0.43%)serde::private::de::content::content_clone (22 samples, 0.41%)serde::private::de::content::content_clone (20 samples, 0.38%)serde::private::de::content::content_clone (11 samples, 0.21%)_xzm_xzone_malloc (1 samples, 0.02%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.21%)starknet_types_core::felt::Felt::from_hex (11 samples, 0.21%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (11 samples, 0.21%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (11 samples, 0.21%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (10 samples, 0.19%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (46 samples, 0.86%)starknet_types_core::felt::Felt::from_hex (45 samples, 0.85%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (45 samples, 0.85%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (41 samples, 0.77%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (21 samples, 0.39%)_free (3 samples, 0.06%)_xzm_free (8 samples, 0.15%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (59 samples, 1.11%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)xzm_segment_group_alloc_chunk (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (63 samples, 1.18%)_xzm_free (4 samples, 0.08%)_xzm_free (1 samples, 0.02%)_free (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (77 samples, 1.45%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (77 samples, 1.45%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (77 samples, 1.45%)serde::private::de::content::MapDeserializer<E>::end (2 samples, 0.04%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.06%)serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (186 samples, 3.50%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (185 samples, 3.48%)<se..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (185 samples, 3.48%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (185 samples, 3.48%)<se..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (110 samples, 2.07%)s..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (85 samples, 1.60%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (85 samples, 1.60%)_xzm_free (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)mach_absolute_time (1 samples, 0.02%)__rustc::__rdl_dealloc (1 samples, 0.02%)_free (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)_free (3 samples, 0.06%)_xzm_free (4 samples, 0.08%)__bzero (1 samples, 0.02%)_free (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)_xzm_free (5 samples, 0.09%)core::ptr::drop_in_place<serde_core::private::content::Content> (28 samples, 0.53%)core::ptr::drop_in_place<serde_core::private::content::Content> (28 samples, 0.53%)core::ptr::drop_in_place<serde_core::private::content::Content> (28 samples, 0.53%)core::ptr::drop_in_place<serde_core::private::content::Content> (25 samples, 0.47%)core::ptr::drop_in_place<serde_core::private::content::Content> (20 samples, 0.38%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)<serde_json::value::de::SeqDeserializer as serde_core::de::SeqAccess>::size_hint (2 samples, 0.04%)_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (8 samples, 0.15%)_xzm_xzone_malloc_tiny_or_early (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (19 samples, 0.36%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.24%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (25 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (21 samples, 0.39%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)_xzm_free (2 samples, 0.04%)_platform_memset (1 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (393 samples, 7.39%)<starknet_..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (393 samples, 7.39%)starknet_p..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (250 samples, 4.70%)stark..serde_core::de::Deserializer::__deserialize_content_v1 (36 samples, 0.68%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (36 samples, 0.68%)serde_core::de::Deserializer::__deserialize_content_v1 (36 samples, 0.68%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (36 samples, 0.68%)serde_core::de::Deserializer::__deserialize_content_v1 (36 samples, 0.68%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (36 samples, 0.68%)serde_core::de::Deserializer::__deserialize_content_v1 (36 samples, 0.68%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (36 samples, 0.68%)serde_core::de::Deserializer::__deserialize_content_v1 (34 samples, 0.64%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<hyper_util::client::legacy::pool::Checkout<T,K> as core::future::future::Future>::poll (1 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (2 samples, 0.04%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (2 samples, 0.04%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (2 samples, 0.04%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (2 samples, 0.04%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (2 samples, 0.04%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (2 samples, 0.04%)http::header::map::HeaderMap<T>::try_entry2 (1 samples, 0.02%)http::header::map::hash_elem_using (1 samples, 0.02%)_free (1 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.02%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.02%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}}::_{{closure}} (399 samples, 7.50%)<torii::et..torii::etl::extractor::starknet_helpers::block_into_contexts (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.06%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.06%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.06%)<&std::net::tcp::TcpStream as std::io::Write>::write (3 samples, 0.06%)__sendto (3 samples, 0.06%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (5 samples, 0.09%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (5 samples, 0.09%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (2 samples, 0.04%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (2 samples, 0.04%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (2 samples, 0.04%)tokio::runtime::io::registration::Registration::try_io (2 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.04%)__recvfrom (2 samples, 0.04%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (6 samples, 0.11%)std::time::Instant::elapsed (1 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (1 samples, 0.02%)clock_gettime (1 samples, 0.02%)clock_gettime_nsec_np (1 samples, 0.02%)mach_absolute_time (1 samples, 0.02%)tokio::runtime::task::core::TaskIdGuard::enter (1 samples, 0.02%)_tlv_get_addr (1 samples, 0.02%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.02%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.02%)sqlx_core::logger::QueryLogger::finish (1 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.04%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.04%)core::ptr::drop_in_place<sqlx_core::pool::connection::PoolConnection<sqlx_core::any::database::Any>> (1 samples, 0.02%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.02%)core::fmt::Formatter::pad_integral (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)_realloc (3 samples, 0.06%)xzm_malloc_zone_size (1 samples, 0.02%)core::fmt::Formatter::pad_integral (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)alloc::fmt::format::format_inner (14 samples, 0.26%)core::fmt::write (14 samples, 0.26%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (12 samples, 0.23%)core::fmt::write (8 samples, 0.15%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (8 samples, 0.15%)core::fmt::write (6 samples, 0.11%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (4 samples, 0.08%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)xzm_malloc_zone_size (1 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.02%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (18 samples, 0.34%)torii::etl::envelope::Envelope::new (1 samples, 0.02%)torii::etl::decoder::DecoderId::new (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.02%)_xzm_free (2 samples, 0.04%)DYLD-STUB$$_platform_bzero (1 samples, 0.02%)core::fmt::Formatter::pad_integral (2 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)_malloc_zone_realloc (5 samples, 0.09%)xzm_realloc (5 samples, 0.09%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (8 samples, 0.15%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.13%)alloc::raw_vec::finish_grow (7 samples, 0.13%)_realloc (7 samples, 0.13%)xzm_malloc_zone_size (2 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::fmt::format::format_inner (23 samples, 0.43%)core::fmt::write (23 samples, 0.43%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (21 samples, 0.39%)core::fmt::write (15 samples, 0.28%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (15 samples, 0.28%)core::fmt::write (14 samples, 0.26%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (13 samples, 0.24%)core::fmt::Formatter::pad_integral (2 samples, 0.04%)_platform_memmove (1 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (48 samples, 0.90%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (26 samples, 0.49%)starknet_types_core::felt::primitive_conversions::_<impl core::convert::TryFrom<starknet_types_core::felt::Felt> for u128>::try_from (1 samples, 0.02%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_le (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (1 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (2 samples, 0.04%)alloc::fmt::format::format_inner (2 samples, 0.04%)core::fmt::write (2 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1 samples, 0.02%)core::fmt::write (1 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1 samples, 0.02%)core::fmt::write (1 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (61 samples, 1.15%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (54 samples, 1.02%)_xzm_free (3 samples, 0.06%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (66 samples, 1.24%)_xzm_xzone_malloc_tiny_or_early (2 samples, 0.04%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (1 samples, 0.02%)_platform_memmove (2 samples, 0.04%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (2 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2 samples, 0.04%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (2 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (2 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.04%)tokio::runtime::context::with_scheduler (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.02%)encoding_rs::Encoding::decode_without_bom_handling (1 samples, 0.02%)encoding_rs::utf_8::utf8_valid_up_to (1 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (7 samples, 0.13%)http_body_util::collected::Collected<B>::to_bytes (4 samples, 0.08%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (4 samples, 0.08%)_platform_memmove (4 samples, 0.08%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)DYLD-STUB$$malloc (1 samples, 0.02%)_platform_memmove (2 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.09%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (3 samples, 0.06%)_xzm_xzone_malloc_freelist_outlined (3 samples, 0.06%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.21%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.21%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.21%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (5 samples, 0.09%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13 samples, 0.24%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (13 samples, 0.24%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (13 samples, 0.24%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.04%)<deduplicated_symbol> (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.38%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.38%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (20 samples, 0.38%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (20 samples, 0.38%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.38%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.38%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (20 samples, 0.38%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (7 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.13%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.13%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.02%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.02%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::KV>::split (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_xzone_madvise_batch (1 samples, 0.02%)xzm_reclaim_mark_free_locked (1 samples, 0.02%)xzm_reclaim_sync_and_resize (1 samples, 0.02%)mach_vm_reclaim_ring_resize (1 samples, 0.02%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.02%)mach_msg2_trap (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (46 samples, 0.86%)serde_json::de::from_str (37 samples, 0.70%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (37 samples, 0.70%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (37 samples, 0.70%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (37 samples, 0.70%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.26%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.26%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.26%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.26%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.26%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (14 samples, 0.26%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.24%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (13 samples, 0.24%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.24%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (13 samples, 0.24%)serde_core::de::Deserializer::__deserialize_content_v1 (11 samples, 0.21%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (10 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.11%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)serde::private::de::content::content_clone (1 samples, 0.02%)serde::private::de::content::content_clone (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (3 samples, 0.06%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (4 samples, 0.08%)_xzm_free (1 samples, 0.02%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (5 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (5 samples, 0.09%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (4 samples, 0.08%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (4 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.08%)starknet_types_core::felt::Felt::from_hex (4 samples, 0.08%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (4 samples, 0.08%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (3 samples, 0.06%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (11 samples, 0.21%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (5 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.02%)DYLD-STUB$$malloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.11%)serde::private::de::content::content_clone (5 samples, 0.09%)serde::private::de::content::content_clone (5 samples, 0.09%)serde::private::de::content::content_clone (4 samples, 0.08%)serde::private::de::content::content_clone (2 samples, 0.04%)_malloc_zone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.06%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.06%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.06%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.21%)starknet_types_core::felt::Felt::from_hex (10 samples, 0.19%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (10 samples, 0.19%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (7 samples, 0.13%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (13 samples, 0.24%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (13 samples, 0.24%)_xzm_free (1 samples, 0.02%)_free (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (17 samples, 0.32%)serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (38 samples, 0.71%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (38 samples, 0.71%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (38 samples, 0.71%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (38 samples, 0.71%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (27 samples, 0.51%)<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (21 samples, 0.39%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (21 samples, 0.39%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (18 samples, 0.34%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (18 samples, 0.34%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_free (2 samples, 0.04%)_xzm_free (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (5 samples, 0.09%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.08%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_free (1 samples, 0.02%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (3 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.06%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (97 samples, 1.82%)<..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (96 samples, 1.81%)s..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (50 samples, 0.94%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (5 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)tls_handshake_continue (1 samples, 0.02%)SSLAdvanceHandshake (1 samples, 0.02%)SSLPrepareAndQueueMessage (1 samples, 0.02%)SSLEncodeKeyExchange (1 samples, 0.02%)ccecdh_compute_shared_secret (1 samples, 0.02%)ccecdh_compute_shared_secret_ws (1 samples, 0.02%)ccec_mult_blinded_ws (1 samples, 0.02%)ccec_mult_default_ws (1 samples, 0.02%)ccn_mulmod_p256 (1 samples, 0.02%)SSLProcessHandshakeMessage (1 samples, 0.02%)SSLProcessCertificate (1 samples, 0.02%)__ssl_debug_enabled (1 samples, 0.02%)pthread_once (1 samples, 0.02%)_os_once (1 samples, 0.02%)_os_once_callout (1 samples, 0.02%)__pthread_once_handler (1 samples, 0.02%)__security_debug_init (1 samples, 0.02%)__open (1 samples, 0.02%)CSSM_CL_CertGetFirstCachedFieldValue (1 samples, 0.02%)cssm_CertGetFirstCachedFieldValue(long, long, cssm_data const*, long*, unsigned int*, cssm_data**) (1 samples, 0.02%)AppleX509CLSession::CertGetFirstCachedFieldValue(long, Security::CssmData const&, unsigned int&, cssm_data*&) (1 samples, 0.02%)getField_PublicKeyStruct(DecodedItem&, unsigned int, unsigned int&, Security::CssmOwnedData&) (1 samples, 0.02%)CL_extractCSSMKeyNSS(SecAsn1PubKeyInfo const&, Security::Allocator&, DecodedCert const*) (1 samples, 0.02%)getGlobalCspHand (1 samples, 0.02%)CSSM_ModuleLoad (1 samples, 0.02%)CSSM_SPI_ModuleLoad__apple_csp (1 samples, 0.02%)Security::CssmPlugin::load() (1 samples, 0.02%)Security::DatabaseManager::dbOpen(Security::DatabaseSession&, Security::DbName const&, unsigned int, Security::AccessCredentials const*, void const*) (1 samples, 0.02%)Security::Database::_dbOpen(Security::DatabaseSession&, unsigned int, Security::AccessCredentials const*, void const*) (1 samples, 0.02%)Security::AppleDatabase::dbOpen(Security::DbContext&) (1 samples, 0.02%)Security::DbModifier::getDbVersion(bool) (1 samples, 0.02%)Security::MetaRecord::unpackRecord(Security::ReadSection const&, Security::Allocator&, cssm_db_record_attribute_data*, Security::CssmData*, unsigned int) const (1 samples, 0.02%)Security::MetaAttribute::unpackAttribute(Security::ReadSection const&, Security::Allocator&, unsigned int&, cssm_data*&) const (1 samples, 0.02%)Security::TypedMetaAttribute<Security::UInt32Value>::unpackValue(Security::ReadSection const&, unsigned int&, cssm_data&, Security::Allocator&) const (1 samples, 0.02%)Security::TrackingAllocator::malloc(unsigned long) (1 samples, 0.02%)Security::TrackingAllocator::malloc(unsigned long) (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)tls_handshake_message_callback (3 samples, 0.06%)tls_helper_set_peer_pubkey (3 samples, 0.06%)SecTrustCopyPublicKey (3 samples, 0.06%)SecCertificateCopyPublicKey$LEGACYMAC (3 samples, 0.06%)Security::KeychainCore::Certificate::publicKey() (3 samples, 0.06%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (3 samples, 0.06%)Security::KeychainCore::Certificate::clHandle() (2 samples, 0.04%)Security::CssmClient::AttachmentImpl::activate() (2 samples, 0.04%)Security::CssmClient::ModuleImpl::activate() (2 samples, 0.04%)CSSM_ModuleLoad (2 samples, 0.04%)Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) (2 samples, 0.04%)Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) (2 samples, 0.04%)Security::MDSClient::Directory::cdsa() const (2 samples, 0.04%)mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) (2 samples, 0.04%)Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.04%)Security::DatabaseSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.04%)Security::DbName::DbName(char const*, cssm_net_address const*) (1 samples, 0.02%)Security::DbName::CanonicalizeName() (1 samples, 0.02%)Security::cached_realpath(char const*, char*) (1 samples, 0.02%)_dispatch_lane_barrier_sync_invoke_and_complete (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)invocation function for block in Security::cached_realpath(char const*, char*) (1 samples, 0.02%)__getattrlist (1 samples, 0.02%)SSLHandshake (6 samples, 0.11%)SSLHandshakeProceed (6 samples, 0.11%)tls_handshake_process (5 samples, 0.09%)SSLProcessHandshakeRecordInner (5 samples, 0.09%)tls_verify_peer_cert (1 samples, 0.02%)sslCreateSecTrust (1 samples, 0.02%)tls_helper_create_peer_trust (1 samples, 0.02%)tls_helper_create_cfarray_from_certificates (1 samples, 0.02%)SecCertificateCreateWithData (1 samples, 0.02%)SecCertificateParse (1 samples, 0.02%)__CFDataInit (1 samples, 0.02%)_CFRuntimeCreateInstance (1 samples, 0.02%)__SecCFCalendarDoWithZuluCalendar_block_invoke (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)__SecCFCalendarGetZulu_block_invoke (1 samples, 0.02%)@objc static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.02%)specialized static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.02%)protocol witness for _CalendarProtocol.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) in conformance _CalendarGregorian (1 samples, 0.02%)_CalendarGregorian.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)one-time initialization function for cache (1 samples, 0.02%)specialized __RawDictionaryStorage.find<A>(_:hashValue:) (1 samples, 0.02%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (8 samples, 0.15%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (8 samples, 0.15%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (8 samples, 0.15%)security_framework::trust::SecTrust::evaluate_with_error (2 samples, 0.04%)SecTrustEvaluateInternal (2 samples, 0.04%)SecTrustEvaluateIfNecessary (2 samples, 0.04%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.04%)_dispatch_client_callout (2 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke (2 samples, 0.04%)_os_activity_initiate_impl (2 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_2 (2 samples, 0.04%)SecOSStatusWith (2 samples, 0.04%)__SecTrustEvaluateIfNecessary_block_invoke_3 (2 samples, 0.04%)securityd_send_sync_and_do (2 samples, 0.04%)__handle_trust_evaluate_xpc_block_invoke_2 (2 samples, 0.04%)SecXPCDictionaryCopyDictionaryOptional (2 samples, 0.04%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (2 samples, 0.04%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (2 samples, 0.04%)der_decode_plist (2 samples, 0.04%)der_decode_dictionary (2 samples, 0.04%)der_decode_plist (2 samples, 0.04%)der_decode_date (2 samples, 0.04%)der_decode_commontime_body (2 samples, 0.04%)SecCFCalendarDoWithZuluCalendar (2 samples, 0.04%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.04%)_dispatch_client_callout (2 samples, 0.04%)__SecGregorianDateGetAbsoluteTime_block_invoke (1 samples, 0.02%)CFCalendarComposeAbsoluteTime (1 samples, 0.02%)_objc_msgSend_uncached (1 samples, 0.02%)lookUpImpOrForward (1 samples, 0.02%)getMethodFromRelativeList(relative_list_list_t<method_list_t>*, objc_selector*) (1 samples, 0.02%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.17%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.17%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (9 samples, 0.17%)reqwest::connect::with_timeout::_{{closure}} (9 samples, 0.17%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (9 samples, 0.17%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (9 samples, 0.17%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (1 samples, 0.02%)native_tls::imp::TlsConnector::connect (1 samples, 0.02%)security_framework::secure_transport::ClientBuilder::handshake (1 samples, 0.02%)SSLCreateContext (1 samples, 0.02%)SSLCreateContextWithRecordFuncsAndPath (1 samples, 0.02%)_dispatch_once_callout (1 samples, 0.02%)_dispatch_client_callout (1 samples, 0.02%)__SSLCreateContextWithRecordFuncsAndPath_block_invoke (1 samples, 0.02%)_CFPreferencesCopyAppValueWithContainerAndConfiguration (1 samples, 0.02%)-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] (1 samples, 0.02%)-[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] (1 samples, 0.02%)__108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke (1 samples, 0.02%)__76-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:]_block_invoke (1 samples, 0.02%)-[CFPrefsSource copyValueForKey:] (1 samples, 0.02%)-[CFPrefsSearchListSource alreadylocked_copyValueForKey:] (1 samples, 0.02%)-[CFPrefsSearchListSource alreadylocked_getDictionary:] (1 samples, 0.02%)-[CFPrefsSource mergeIntoDictionary:sourceDictionary:cloudKeyEvaluator:] (1 samples, 0.02%)-[__NSFrozenDictionaryM __apply:context:] (1 samples, 0.02%)CFDictionaryAddValue (1 samples, 0.02%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (10 samples, 0.19%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (10 samples, 0.19%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (10 samples, 0.19%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (10 samples, 0.19%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (10 samples, 0.19%)hyper_util::client::legacy::client::Client<C,B>::connect_to::_{{closure}}::_{{closure}}::_{{closure}} (1 samples, 0.02%)want::new (1 samples, 0.02%)serde_core::ser::SerializeMap::serialize_entry (1 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (12 samples, 0.23%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (12 samples, 0.23%)serde_json::de::from_str (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)serde_json::de::Deserializer<R>::parse_integer (1 samples, 0.02%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (110 samples, 2.07%)<..torii::etl::extractor::starknet_helpers::block_into_contexts (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::de::DeserializeAs<starknet_types_core::felt::Felt>>::deserialize_as (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)mio::waker::Waker::wake (1 samples, 0.02%)kevent (1 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (2 samples, 0.04%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (2 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (2 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.04%)tokio::runtime::context::with_scheduler (2 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (1 samples, 0.02%)pthread_cond_signal (1 samples, 0.02%)__psynch_cvsignal (1 samples, 0.02%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (3 samples, 0.06%)http_body_util::collected::Collected<B>::push_frame (1 samples, 0.02%)_platform_memmove (3 samples, 0.06%)encoding_rs::Encoding::decode_without_bom_handling (3 samples, 0.06%)encoding_rs::utf_8::utf8_valid_up_to (3 samples, 0.06%)_platform_memmove (3 samples, 0.06%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (15 samples, 0.28%)http_body_util::collected::Collected<B>::to_bytes (6 samples, 0.11%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (6 samples, 0.11%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (6 samples, 0.11%)bytes::bytes_mut::shared_v_drop (1 samples, 0.02%)_xzm_xzone_madvise_batch (1 samples, 0.02%)xzm_reclaim_mark_free_locked (1 samples, 0.02%)xzm_reclaim_sync_and_resize (1 samples, 0.02%)mach_vm_reclaim_ring_resize (1 samples, 0.02%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.02%)mach_msg2_trap (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)DYLD-STUB$$malloc (1 samples, 0.02%)DYLD-STUB$$memcpy (2 samples, 0.04%)__rustc::__rdl_alloc (1 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.04%)_platform_memmove (4 samples, 0.08%)_xzm_xzone_malloc (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17 samples, 0.32%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.04%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)xzm_chunk_mark_used (1 samples, 0.02%)_xzm_reclaim_mark_used (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (24 samples, 0.45%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (24 samples, 0.45%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (24 samples, 0.45%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (24 samples, 0.45%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (24 samples, 0.45%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_xzm_malloc_large_huge (1 samples, 0.02%)xzm_segment_group_alloc_chunk (1 samples, 0.02%)_xzm_segment_group_alloc_segment (1 samples, 0.02%)mach_vm_map (1 samples, 0.02%)_kernelrpc_mach_vm_map_trap (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (23 samples, 0.43%)serde_core::de::Deserializer::__deserialize_content_v1 (17 samples, 0.32%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (16 samples, 0.30%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (70 samples, 1.32%)serde_json::de::from_str (54 samples, 1.02%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (54 samples, 1.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (54 samples, 1.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (54 samples, 1.02%)serde_core::de::Deserializer::__deserialize_content_v1 (28 samples, 0.53%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (28 samples, 0.53%)serde_core::de::Deserializer::__deserialize_content_v1 (28 samples, 0.53%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (28 samples, 0.53%)serde_core::de::Deserializer::__deserialize_content_v1 (28 samples, 0.53%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.06%)serde_json::read::parse_escape (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (163 samples, 3.07%)<se..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (162 samples, 3.05%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (161 samples, 3.03%)<se..starknet_types_core::felt::Felt::from_hex (159 samples, 2.99%)sta..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (159 samples, 2.99%)<la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (150 samples, 2.82%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (89 samples, 1.67%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (164 samples, 3.08%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.02%)_free (1 samples, 0.02%)DYLD-STUB$$free (1 samples, 0.02%)_free (1 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (9 samples, 0.17%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.15%)_xzm_free (6 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.04%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (250 samples, 4.70%)<star..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (250 samples, 4.70%)stark..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (179 samples, 3.37%)sta..serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (2 samples, 0.04%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.02%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (3 samples, 0.06%)__recvfrom (3 samples, 0.06%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (4 samples, 0.08%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (4 samples, 0.08%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (4 samples, 0.08%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (4 samples, 0.08%)tokio::runtime::io::registration::Registration::try_io (4 samples, 0.08%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (4 samples, 0.08%)__recvfrom (1 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.09%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (5 samples, 0.09%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (5 samples, 0.09%)sqlx_postgres::message::command_complete::CommandComplete::rows_affected (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (6 samples, 0.11%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (6 samples, 0.11%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (1 samples, 0.02%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (1 samples, 0.02%)tokio::net::tcp::stream::TcpStream::try_write (1 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Write>::write (1 samples, 0.02%)__sendto (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)sqlx_core::any::connection::executor::_<impl sqlx_core::executor::Executor for &mut sqlx_core::any::connection::AnyConnection>::fetch_many (2 samples, 0.04%)sqlx_postgres::any::_<impl sqlx_core::any::connection::backend::AnyConnectionBackend for sqlx_postgres::connection::PgConnection>::fetch_many (2 samples, 0.04%)sqlx_core::any::arguments::AnyArguments::convert_to (2 samples, 0.04%)<sqlx_postgres::arguments::PgArguments as sqlx_core::arguments::Arguments>::add (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)<tokio::time::sleep::Sleep as core::future::future::Future>::poll (1 samples, 0.02%)tokio::runtime::time::entry::TimerEntry::poll_elapsed (1 samples, 0.02%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::reregister (1 samples, 0.02%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (4 samples, 0.08%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (4 samples, 0.08%)tokio::net::tcp::stream::TcpStream::try_write (4 samples, 0.08%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.08%)<&std::net::tcp::TcpStream as std::io::Write>::write (4 samples, 0.08%)__sendto (4 samples, 0.08%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (6 samples, 0.11%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (5 samples, 0.09%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (5 samples, 0.09%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (5 samples, 0.09%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (1 samples, 0.02%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (1 samples, 0.02%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (1 samples, 0.02%)tokio::runtime::io::registration::Registration::try_io (1 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (1 samples, 0.02%)__recvfrom (1 samples, 0.02%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (16 samples, 0.30%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (1 samples, 0.02%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (17 samples, 0.32%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (17 samples, 0.32%)<deduplicated_symbol> (17 samples, 0.32%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (17 samples, 0.32%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (17 samples, 0.32%)_xzm_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (2 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (2 samples, 0.04%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (2 samples, 0.04%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (4 samples, 0.08%)serde_json::de::from_trait (4 samples, 0.08%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (4 samples, 0.08%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (4 samples, 0.08%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (4 samples, 0.08%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (2 samples, 0.04%)alloc::fmt::format::format_inner (2 samples, 0.04%)core::fmt::write (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_xzm_free (2 samples, 0.04%)_platform_memmove (1 samples, 0.02%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (8 samples, 0.15%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (5 samples, 0.09%)alloc::fmt::format::format_inner (3 samples, 0.06%)core::fmt::write (3 samples, 0.06%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (5 samples, 0.09%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (5 samples, 0.09%)alloc::fmt::format::format_inner (5 samples, 0.09%)core::fmt::write (4 samples, 0.08%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)_realloc (3 samples, 0.06%)xzm_malloc_zone_size (1 samples, 0.02%)_platform_memcmp (1 samples, 0.02%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (288 samples, 5.42%)<torii:..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (288 samples, 5.42%)torii::..torii::etl::identification::registry::ContractRegistry::run_rules (15 samples, 0.28%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (2 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (1 samples, 0.02%)tokio_postgres::client::Client::query_one::_{{closure}} (1 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (1 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)tokio_postgres::query::encode_bind (1 samples, 0.02%)core::ptr::drop_in_place<core::iter::adapters::enumerate::Enumerate<alloc::vec::into_iter::IntoIter<(&dyn postgres_types::ToSql,postgres_types::Type)>>> (1 samples, 0.02%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (2 samples, 0.04%)torii::etl::decoder::DecoderId::new (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (1 samples, 0.02%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (1 samples, 0.02%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (1 samples, 0.02%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (1 samples, 0.02%)core::ptr::drop_in_place<hyper_util::client::legacy::client::Client<reqwest::connect::Connector,reqwest::async_impl::body::Body>::connect_to::{{closure}}> (1 samples, 0.02%)core::ptr::drop_in_place<reqwest::connect::ConnectorService> (1 samples, 0.02%)core::ptr::drop_in_place<native_tls::TlsConnector> (1 samples, 0.02%)alloc::vec::Vec<T,A>::resize (1 samples, 0.02%)core::ptr::drop_in_place<reqwest::async_impl::client::Pending> (1 samples, 0.02%)core::ptr::drop_in_place<reqwest::async_impl::client::ResponseFuture> (1 samples, 0.02%)core::ptr::drop_in_place<<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::{{closure}}> (1 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (1 samples, 0.02%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (1 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.02%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.02%)tokio::runtime::context::with_scheduler (1 samples, 0.02%)parking_lot::condvar::Condvar::notify_one_slow (1 samples, 0.02%)parking_lot_core::parking_lot::lock_bucket_pair (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)serde_json::ser::format_escaped_str (1 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.04%)serde_json::ser::format_escaped_str (2 samples, 0.04%)DYLD-STUB$$memcpy (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (2 samples, 0.04%)alloc::fmt::format::format_inner (2 samples, 0.04%)core::fmt::write (2 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (2 samples, 0.04%)core::fmt::write (1 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1 samples, 0.02%)core::fmt::write (1 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)_realloc (1 samples, 0.02%)_free (1 samples, 0.02%)serde_core::ser::Serializer::collect_seq (7 samples, 0.13%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (7 samples, 0.13%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (7 samples, 0.13%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (7 samples, 0.13%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (6 samples, 0.11%)serde_core::ser::Serializer::collect_seq (2 samples, 0.04%)<deduplicated_symbol> (2 samples, 0.04%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (2 samples, 0.04%)serde_json::ser::format_escaped_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (13 samples, 0.24%)serde_json::de::from_str (2 samples, 0.04%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (2 samples, 0.04%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (2 samples, 0.04%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (2 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_realloc (2 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_platform_memmove (2 samples, 0.04%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (16 samples, 0.30%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (16 samples, 0.30%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (1 samples, 0.02%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::de::DeserializeAs<starknet_types_core::felt::Felt>>::deserialize_as (1 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.02%)_free (4 samples, 0.08%)_platform_memmove (1 samples, 0.02%)_xzm_free (7 samples, 0.13%)_platform_memset (1 samples, 0.02%)core::hash::BuildHasher::hash_one (3 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.06%)_xzm_free (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (7 samples, 0.13%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.09%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (4 samples, 0.08%)_xzm_free (3 samples, 0.06%)__bzero (1 samples, 0.02%)core::hash::BuildHasher::hash_one (2 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.04%)hashbrown::map::HashMap<K,V,S,A>::insert (4 samples, 0.08%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.02%)_xzm_malloc_large_huge (1 samples, 0.02%)xzm_segment_group_alloc_chunk (1 samples, 0.02%)_xzm_segment_group_find_and_allocate_chunk (1 samples, 0.02%)_xzm_segment_group_span_mark_smaller (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (1 samples, 0.02%)tokio_postgres::query::start::_{{closure}} (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.02%)_free (1 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (2 samples, 0.04%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (1 samples, 0.02%)tokio_postgres::prepare::encode (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)__bzero (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.04%)<deduplicated_symbol> (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.06%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.02%)tokio::runtime::context::with_scheduler (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (8 samples, 0.15%)futures_channel::mpsc::channel (4 samples, 0.08%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (14 samples, 0.26%)tokio_postgres::client::InnerClient::with_buf (3 samples, 0.06%)postgres_protocol::message::frontend::write_body (2 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)DYLD-STUB$$memcpy (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (20 samples, 0.38%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (19 samples, 0.36%)_xzm_free (3 samples, 0.06%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)postgres_protocol::message::frontend::write_body (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (6 samples, 0.11%)_platform_memmove (2 samples, 0.04%)_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)core::iter::traits::iterator::Iterator::unzip (10 samples, 0.19%)postgres_types::ToSql::encode_format (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (25 samples, 0.47%)tokio_postgres::query::encode_bind (23 samples, 0.43%)postgres_types::__to_sql_checked (2 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.04%)_platform_memmove (2 samples, 0.04%)tokio_postgres::client::Responses::poll_next (3 samples, 0.06%)postgres_protocol::message::backend::Message::parse (2 samples, 0.04%)std::io::default_read_exact (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)core::str::converts::from_utf8 (2 samples, 0.04%)_platform_memcmp (2 samples, 0.04%)tokio_postgres::query::extract_row_affected (5 samples, 0.09%)core::str::iter::SplitInternal<P>::next_back (3 samples, 0.06%)core::slice::memchr::memrchr (1 samples, 0.02%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (7 samples, 0.13%)futures_channel::mpsc::channel (5 samples, 0.09%)_xzm_xzone_malloc_tiny (3 samples, 0.06%)DYLD-STUB$$free (1 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.06%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.08%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (8 samples, 0.15%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (8 samples, 0.15%)alloc::raw_vec::finish_grow (2 samples, 0.04%)tokio_postgres::query::start::_{{closure}} (27 samples, 0.51%)tokio_postgres::client::Responses::poll_next (18 samples, 0.34%)postgres_protocol::message::backend::Message::parse (10 samples, 0.19%)bytes::bytes_mut::shared_v_drop (1 samples, 0.02%)_free (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.06%)_platform_memmove (1 samples, 0.02%)default_zone_realloc (1 samples, 0.02%)alloc::fmt::format::format_inner (12 samples, 0.23%)core::fmt::write (12 samples, 0.23%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (7 samples, 0.13%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.11%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.09%)alloc::raw_vec::finish_grow (3 samples, 0.06%)_realloc (3 samples, 0.06%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_free (1 samples, 0.02%)__rustc::__rust_dealloc (1 samples, 0.02%)_free (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (9 samples, 0.17%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (9 samples, 0.17%)alloc::sync::Arc<T,A>::drop_slow (6 samples, 0.11%)_xzm_free (3 samples, 0.06%)_platform_memset (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<deduplicated_symbol> (5 samples, 0.09%)_xzm_xzone_malloc (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (10 samples, 0.19%)futures_channel::mpsc::channel (7 samples, 0.13%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.08%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.06%)_xzm_free (2 samples, 0.04%)_platform_memset (2 samples, 0.04%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (16 samples, 0.30%)postgres_protocol::message::backend::Message::parse (11 samples, 0.21%)std::io::Read::read_exact (1 samples, 0.02%)DYLD-STUB$$memcpy (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (4 samples, 0.08%)_platform_memmove (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.08%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.04%)core::slice::memchr::memchr_aligned (3 samples, 0.06%)tokio_postgres::prepare::encode (17 samples, 0.32%)tokio_postgres::client::InnerClient::with_buf (16 samples, 0.30%)postgres_protocol::message::frontend::write_body (2 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (2 samples, 0.04%)postgres_types::Type::from_oid (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (172 samples, 3.23%)tok..tokio_postgres::client::Client::execute::_{{closure}} (168 samples, 3.16%)tok..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (78 samples, 1.47%)tokio_postgres::statement::Statement::new (3 samples, 0.06%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Client::query_opt<str>::{{closure}}> (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)postgres_protocol::message::backend::Buffer::read_cstr (2 samples, 0.04%)tokio_postgres::client::Responses::poll_next (6 samples, 0.11%)postgres_protocol::message::backend::Message::parse (6 samples, 0.11%)std::io::Read::read_exact (1 samples, 0.02%)core::str::converts::from_utf8 (1 samples, 0.02%)tokio_postgres::query::extract_row_affected (2 samples, 0.04%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.02%)_platform_memcmp (1 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (12 samples, 0.23%)tokio_postgres::row::Row::new (1 samples, 0.02%)<alloc::vec::Vec<T> as fallible_iterator::FromFallibleIterator<T>>::from_fallible_iter (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (2 samples, 0.04%)futures_channel::mpsc::channel (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_chunk_list_pop (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.06%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (3 samples, 0.06%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (3 samples, 0.06%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)postgres_protocol::message::frontend::write_body (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (3 samples, 0.06%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (3 samples, 0.06%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.04%)_xzm_free (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)postgres_protocol::message::frontend::write_body (1 samples, 0.02%)<alloc::vec::Vec<u8> as postgres_types::ToSql>::to_sql_checked (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.04%)_platform_memmove (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (1 samples, 0.02%)core::iter::traits::iterator::Iterator::unzip (5 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (15 samples, 0.28%)tokio_postgres::query::encode_bind (13 samples, 0.24%)postgres_types::__to_sql_checked (1 samples, 0.02%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.06%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.02%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (8 samples, 0.15%)futures_channel::mpsc::channel (4 samples, 0.08%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.04%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (41 samples, 0.77%)tokio_postgres::query::start::_{{closure}} (23 samples, 0.43%)tokio_postgres::client::Responses::poll_next (11 samples, 0.21%)postgres_protocol::message::backend::Message::parse (5 samples, 0.09%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.08%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)realloc (1 samples, 0.02%)alloc::fmt::format::format_inner (6 samples, 0.11%)core::fmt::write (5 samples, 0.09%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (5 samples, 0.09%)core::fmt::Formatter::pad_integral (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.11%)alloc::raw_vec::finish_grow (6 samples, 0.11%)_realloc (4 samples, 0.08%)_malloc_zone_realloc (4 samples, 0.08%)xzm_realloc (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.02%)_free (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (6 samples, 0.11%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (6 samples, 0.11%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.06%)_xzm_free (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::prepare::prepare::{{closure}}> (2 samples, 0.04%)core::str::converts::from_utf8 (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (1 samples, 0.02%)futures_channel::mpsc::channel (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.06%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.06%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)bytes::bytes::Bytes::slice (5 samples, 0.09%)bytes::bytes_mut::shared_v_clone (2 samples, 0.04%)tokio_postgres::client::Responses::poll_next (13 samples, 0.24%)postgres_protocol::message::backend::Message::parse (7 samples, 0.13%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)xzm_malloc_zone_realloc (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (11 samples, 0.21%)bytes::bytes_mut::BytesMut::reserve_inner (10 samples, 0.19%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.13%)alloc::raw_vec::finish_grow (5 samples, 0.09%)_realloc (5 samples, 0.09%)_malloc_zone_realloc (4 samples, 0.08%)xzm_realloc (3 samples, 0.06%)_xzm_free (2 samples, 0.04%)_platform_memset (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.02%)core::slice::memchr::memchr_aligned (1 samples, 0.02%)tokio_postgres::prepare::encode (18 samples, 0.34%)tokio_postgres::client::InnerClient::with_buf (17 samples, 0.32%)postgres_protocol::message::frontend::write_body (2 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (4 samples, 0.08%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (133 samples, 2.50%)to..tokio_postgres::client::Client::query_opt::_{{closure}} (131 samples, 2.46%)to..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (67 samples, 1.26%)tokio_postgres::statement::Statement::new (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)torii_common::felt_to_blob (2 samples, 0.04%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (1 samples, 0.02%)torii_common::u256_to_blob (1 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.02%)<starknet_core::types::u256::U256 as core::ops::arith::Sub>::sub (1 samples, 0.02%)_xzm_free (6 samples, 0.11%)_platform_memset (4 samples, 0.08%)_xzm_xzone_malloc_tiny (2 samples, 0.04%)core::hash::BuildHasher::hash_one (3 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.04%)hashbrown::map::HashMap<K,V,S,A>::insert (2 samples, 0.04%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (4 samples, 0.08%)core::hash::BuildHasher::hash_one (3 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.06%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.06%)tokio::runtime::task::waker::wake_by_val (2 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (4 samples, 0.08%)futures_channel::mpsc::channel (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (7 samples, 0.13%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (7 samples, 0.13%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (7 samples, 0.13%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.04%)postgres_protocol::message::frontend::write_body (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (5 samples, 0.09%)tokio_postgres::query::encode_bind (4 samples, 0.08%)core::iter::traits::iterator::Iterator::unzip (2 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.04%)alloc::raw_vec::finish_grow (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)postgres_protocol::message::backend::Message::parse (1 samples, 0.02%)_platform_memcmp (1 samples, 0.02%)tokio_postgres::query::extract_row_affected (2 samples, 0.04%)core::str::converts::from_utf8 (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.02%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.02%)tokio_postgres::query::start::_{{closure}} (3 samples, 0.06%)tokio_postgres::client::Responses::poll_next (2 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)alloc::fmt::format::format_inner (2 samples, 0.04%)core::fmt::write (1 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)_malloc_zone_realloc (1 samples, 0.02%)xzm_realloc (1 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)xzm_malloc_zone_size (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (4 samples, 0.08%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (4 samples, 0.08%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.06%)_xzm_free (3 samples, 0.06%)<deduplicated_symbol> (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (2 samples, 0.04%)futures_channel::mpsc::channel (2 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)postgres_protocol::message::backend::Message::parse (1 samples, 0.02%)tokio_postgres::prepare::encode (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_realloc (1 samples, 0.02%)xzm_malloc_zone_realloc (1 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (2 samples, 0.04%)postgres_types::Type::from_oid (2 samples, 0.04%)postgres_types::type_gen::Inner::from_oid (2 samples, 0.04%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (33 samples, 0.62%)tokio_postgres::client::Client::execute::_{{closure}} (33 samples, 0.62%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (15 samples, 0.28%)tokio_postgres::statement::Statement::new (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)postgres_protocol::message::backend::Message::parse (1 samples, 0.02%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)tokio_postgres::query::extract_row_affected (1 samples, 0.02%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.02%)core::slice::memchr::memrchr (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_free (1 samples, 0.02%)__rustc::__rdl_dealloc (1 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.02%)alloc::raw_vec::finish_grow (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.08%)tokio_postgres::query::encode_bind (3 samples, 0.06%)core::iter::traits::iterator::Iterator::unzip (2 samples, 0.04%)postgres_types::ToSql::encode_format (1 samples, 0.02%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (12 samples, 0.23%)tokio_postgres::query::start::_{{closure}} (8 samples, 0.15%)tokio_postgres::client::Responses::poll_next (5 samples, 0.09%)postgres_protocol::message::backend::Message::parse (4 samples, 0.08%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.04%)_xzm_free (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (2 samples, 0.04%)futures_channel::mpsc::channel (2 samples, 0.04%)_malloc_zone_malloc (2 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (2 samples, 0.04%)postgres_protocol::message::backend::Message::parse (1 samples, 0.02%)std::io::Read::read_exact (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)mach_absolute_time (1 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.04%)xzm_realloc (2 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.02%)tokio_postgres::prepare::encode (3 samples, 0.06%)tokio_postgres::client::InnerClient::with_buf (3 samples, 0.06%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.06%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.06%)alloc::raw_vec::finish_grow (3 samples, 0.06%)_realloc (3 samples, 0.06%)xzm_malloc_zone_size (1 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.02%)postgres_types::Type::from_oid (1 samples, 0.02%)postgres_types::type_gen::Inner::from_oid (1 samples, 0.02%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (30 samples, 0.56%)tokio_postgres::client::Client::query_opt::_{{closure}} (30 samples, 0.56%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (14 samples, 0.26%)tokio_postgres::statement::Statement::new (2 samples, 0.04%)torii_common::felt_to_blob (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (88 samples, 1.65%)torii_common::u256_to_blob (1 samples, 0.02%)_xzm_xzone_malloc (1 samples, 0.02%)_xzm_free (3 samples, 0.06%)_platform_memset (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (1 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)tokio_postgres::query::extract_row_affected (2 samples, 0.04%)core::str::converts::from_utf8 (2 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.04%)tokio_postgres::query::encode_bind (2 samples, 0.04%)_free (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (4 samples, 0.08%)tokio_postgres::query::start::_{{closure}} (2 samples, 0.04%)tokio_postgres::client::InnerClient::send (2 samples, 0.04%)futures_channel::mpsc::channel (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)_free (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)alloc::fmt::format::format_inner (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (13 samples, 0.24%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (6 samples, 0.11%)tokio_postgres::prepare::encode (1 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)torii_erc20::storage::Erc20Storage::pg_get_balances_batch::_{{closure}} (19 samples, 0.36%)torii_common::felt_to_blob (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (477 samples, 8.97%)<torii_erc20:..xzm_segment_group_free_chunk (1 samples, 0.02%)_xzm_segment_group_segment_span_free_coalesce (1 samples, 0.02%)_xzm_segment_group_span_mark_used (1 samples, 0.02%)_xzm_reclaim_mark_used (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (1 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.04%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.02%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)tokio_postgres::client::InnerClient::send (1 samples, 0.02%)futures_channel::mpsc::channel (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (5 samples, 0.09%)tokio_postgres::client::Client::execute::_{{closure}} (5 samples, 0.09%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (2 samples, 0.04%)tokio_postgres::client::Responses::poll_next (1 samples, 0.02%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (491 samples, 9.23%)<torii::etl::..<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (7 samples, 0.13%)torii::etl::decoder::DecoderId::new (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)DYLD-STUB$$free (1 samples, 0.02%)_xzm_free (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (3 samples, 0.06%)_xzm_free (3 samples, 0.06%)DYLD-STUB$$_platform_bzero (1 samples, 0.02%)torii::run::_{{closure}}::_{{closure}} (972 samples, 18.28%)torii::run::_{{closure}}::_{..hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.02%)core::hash::BuildHasher::hash_one (1 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.02%)torii_erc1155::storage::Erc1155Storage::new::_{{closure}}::_{{closure}} (1 samples, 0.02%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (1 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (1 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_write (1 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Write>::write (1 samples, 0.02%)__sendto (1 samples, 0.02%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (1 samples, 0.02%)<deduplicated_symbol> (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)__rustc::__rdl_dealloc (1 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (11 samples, 0.21%)_xzm_free (5 samples, 0.09%)__bzero (1 samples, 0.02%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (24 samples, 0.45%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (4 samples, 0.08%)_platform_memmove (6 samples, 0.11%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (16 samples, 0.30%)bytes::bytes_mut::shared_v_drop (5 samples, 0.09%)_xzm_free (4 samples, 0.08%)mach_absolute_time (2 samples, 0.04%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (12 samples, 0.23%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.04%)tokio::io::poll_evented::PollEvented<E>::poll_read (1 samples, 0.02%)<tokio_postgres::socket::Socket as tokio::io::async_read::AsyncRead>::poll_read (5 samples, 0.09%)DYLD-STUB$$recv (2 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Read>::read (763 samples, 14.35%)<&std::net::tcp::TcpSt..__recvfrom (757 samples, 14.23%)__recvfrom<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (917 samples, 17.24%)<&mio::net::tcp::stream::Tc..__recvfrom (153 samples, 2.88%)__..tokio::runtime::io::registration::Registration::poll_ready (13 samples, 0.24%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (9 samples, 0.17%)tokio::runtime::task::waker::clone_waker (1 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (983 samples, 18.48%)<tokio_util::codec::framed_im..tokio_util::util::poll_buf::poll_read_buf (947 samples, 17.81%)tokio_util::util::poll_buf::..tokio::io::poll_evented::PollEvented<E>::poll_read (938 samples, 17.64%)tokio::io::poll_evented::Po..tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.02%)bytes::bytes_mut::BytesMut::advance_unchecked (5 samples, 0.09%)__sendto (477 samples, 8.97%)__sendto<&std::net::tcp::TcpStream as std::io::Write>::write (483 samples, 9.08%)<&std::net::t..send (1 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (591 samples, 11.11%)<&mio::net::tcp:..__sendto (107 samples, 2.01%)_..<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (605 samples, 11.38%)<tokio_util::code..tokio::io::poll_evented::PollEvented<E>::poll_write (598 samples, 11.24%)tokio::io::poll_e..tokio::runtime::io::registration::Registration::poll_ready (4 samples, 0.08%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (3 samples, 0.06%)__bzero (1 samples, 0.02%)__rustc::__rust_dealloc (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)_platform_memmove (4 samples, 0.08%)_xzm_free (22 samples, 0.41%)__bzero (4 samples, 0.08%)_xzm_xzone_malloc (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (9 samples, 0.17%)<std::sys::sync::mutex::pthread::Mutex as core::ops::drop::Drop>::drop (3 samples, 0.06%)bytes::bytes_mut::shared_v_drop (1 samples, 0.02%)_free (1 samples, 0.02%)_xzm_free (4 samples, 0.08%)__bzero (1 samples, 0.02%)_xzm_free (10 samples, 0.19%)_platform_memset (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (11 samples, 0.21%)xzm_malloc_zone_try_free_default (1 samples, 0.02%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (23 samples, 0.43%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.04%)futures_channel::mpsc::BoundedSenderInner<T>::poll_unparked (1 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.04%)DYLD-STUB$$malloc (2 samples, 0.04%)_malloc_zone_malloc (3 samples, 0.06%)_xzm_xzone_malloc (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.02%)malloc (1 samples, 0.02%)std::sys::sync::once_box::OnceBox<T>::initialize (1 samples, 0.02%)std::sys::pal::unix::sync::mutex::Mutex::init (1 samples, 0.02%)pthread_mutexattr_init (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (4 samples, 0.08%)tokio::runtime::context::with_scheduler (4 samples, 0.08%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (2 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (7 samples, 0.13%)tokio::runtime::task::state::State::transition_to_notified_by_val (3 samples, 0.06%)futures_channel::mpsc::Sender<T>::start_send (24 samples, 0.45%)xzm_malloc_zone_malloc_type_malloc (3 samples, 0.06%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.02%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (1,769 samples, 33.26%)<tokio_postgres::connection::Connection<S,T> as core::..tokio_util::util::poll_buf::poll_read_buf (1 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (2 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (2 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (1 samples, 0.02%)_platform_memmove (2 samples, 0.04%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (1,783 samples, 33.53%)torii_erc20::storage::Erc20Storage::new::_{{closure}}:..futures_channel::mpsc::Sender<T>::start_send (1 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (12 samples, 0.23%)__recvfrom (12 samples, 0.23%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (15 samples, 0.28%)tokio_util::util::poll_buf::poll_read_buf (14 samples, 0.26%)tokio::io::poll_evented::PollEvented<E>::poll_read (14 samples, 0.26%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (14 samples, 0.26%)__recvfrom (2 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (15 samples, 0.28%)__sendto (15 samples, 0.28%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (20 samples, 0.38%)tokio::io::poll_evented::PollEvented<E>::poll_write (20 samples, 0.38%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (20 samples, 0.38%)__sendto (5 samples, 0.09%)<deduplicated_symbol> (3,207 samples, 60.30%)<deduplicated_symbol>torii_erc721::storage::Erc721Storage::new::_{{closure}}::_{{closure}} (36 samples, 0.68%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (36 samples, 0.68%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (1 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.02%)_xzm_free (1 samples, 0.02%)DYLD-STUB$$_platform_bzero (1 samples, 0.02%)hyper::body::incoming::Sender::try_send_data (1 samples, 0.02%)_malloc_zone_malloc (1 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::maybe_notify (1 samples, 0.02%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1 samples, 0.02%)__bzero (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)__rustc::__rdl_alloc (1 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)SSLRecordFreeInternal (1 samples, 0.02%)_xzm_free_outlined (1 samples, 0.02%)_platform_memmove (3 samples, 0.06%)_xzm_xzone_malloc_small_freelist (1 samples, 0.02%)_xzm_xzone_malloc_tiny (1 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (89 samples, 1.67%)__recvfrom (89 samples, 1.67%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (117 samples, 2.20%)<..__recvfrom (28 samples, 0.53%)security_framework::secure_transport::read_func (119 samples, 2.24%)s..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (118 samples, 2.22%)<..tokio::io::poll_evented::PollEvented<E>::poll_read (118 samples, 2.22%)t..tokio::runtime::io::registration::Registration::poll_ready (1 samples, 0.02%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.02%)cc_cmp_safe_internal (1 samples, 0.02%)ccgcm_finalize (3 samples, 0.06%)ccmode_gcm_finalize (2 samples, 0.04%)cc_cmp_safe_internal (2 samples, 0.04%)timingsafe_enable_if_supported (1 samples, 0.02%)Decrypt_Main_Loop (5 samples, 0.09%)Decrypt_Main_Loop (16 samples, 0.30%)ccaes_vng_gcm_decrypt (18 samples, 0.34%)Decrypt_Main_Loop_End (1 samples, 0.02%)ccgcm_update (25 samples, 0.47%)timingsafe_enable_if_supported (2 samples, 0.04%)timingsafe_enable_if_supported (2 samples, 0.04%)SSLDecryptRecord (31 samples, 0.58%)CCSymmAEADDecrypt (31 samples, 0.58%)timingsafe_restore_if_supported (1 samples, 0.02%)_platform_memmove (5 samples, 0.09%)ccgcm_gmac (1 samples, 0.02%)timingsafe_restore_if_supported (1 samples, 0.02%)ccaes_arm_encrypt_key128 (1 samples, 0.02%)ccaes_arm_encrypt_key_with_key_length_check (1 samples, 0.02%)DYLD-STUB$$memset_s (1 samples, 0.02%)ccmode_gcm_reset (2 samples, 0.04%)memset_s (1 samples, 0.02%)_platform_memset (1 samples, 0.02%)ccmode_gcm_init (4 samples, 0.08%)memset_s (1 samples, 0.02%)ccmode_gcm_set_iv (1 samples, 0.02%)AccelerateCrypto_ecb_AES_encrypt (1 samples, 0.02%)timingsafe_enable_if_supported (1 samples, 0.02%)ccgcm_init_with_iv (8 samples, 0.15%)timingsafe_restore_if_supported (1 samples, 0.02%)SSLRecordReadInternal (172 samples, 3.23%)SSL..tls_record_decrypt (47 samples, 0.88%)timingsafe_restore_if_supported (1 samples, 0.02%)SSLRead (174 samples, 3.27%)SSL..tls_handshake_continue (1 samples, 0.02%)<deduplicated_symbol> (175 samples, 3.29%)<de.._platform_memmove (1 samples, 0.02%)__bzero (3 samples, 0.06%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (185 samples, 3.48%)<to.._platform_memset (7 samples, 0.13%)__bzero (3 samples, 0.06%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (190 samples, 3.57%)<hyp.._platform_memset (1 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (205 samples, 3.85%)hype..hyper::proto::h1::decode::Decoder::decode (204 samples, 3.84%)hype..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (204 samples, 3.84%)<hyp..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (200 samples, 3.76%)hype..bytes::bytes_mut::BytesMut::reserve_inner (10 samples, 0.19%)_xzm_xzone_malloc_small_freelist (9 samples, 0.17%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.04%)__recvfrom (2 samples, 0.04%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (3 samples, 0.06%)hyper::proto::h1::io::Buffered<T,B>::parse (3 samples, 0.06%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (3 samples, 0.06%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (3 samples, 0.06%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (3 samples, 0.06%)<deduplicated_symbol> (3 samples, 0.06%)SSLRead (3 samples, 0.06%)SSLRecordReadInternal (3 samples, 0.06%)security_framework::secure_transport::read_func (3 samples, 0.06%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (3 samples, 0.06%)tokio::io::poll_evented::PollEvented<E>::poll_read (3 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (3 samples, 0.06%)__recvfrom (1 samples, 0.02%)hyper::proto::h1::conn::Conn<I,B,T>::write_body_and_end (1 samples, 0.02%)hyper::proto::h1::encode::Encoder::encode_and_end (1 samples, 0.02%)hyper::proto::h1::io::WriteBuf<B>::buffer (1 samples, 0.02%)_platform_memmove (1 samples, 0.02%)SSLRecordServiceWriteQueueInternal (3 samples, 0.06%)security_framework::secure_transport::write_func (3 samples, 0.06%)tokio::io::poll_evented::PollEvented<E>::poll_write (3 samples, 0.06%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.06%)<&std::net::tcp::TcpStream as std::io::Write>::write (3 samples, 0.06%)__sendto (3 samples, 0.06%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (4 samples, 0.08%)tokio_native_tls::TlsStream<S>::with_context (4 samples, 0.08%)SSLWrite (4 samples, 0.08%)SSLRecordWriteInternal (1 samples, 0.02%)tls_record_encrypt (1 samples, 0.02%)CCSymmAEADEncrypt (1 samples, 0.02%)ccgcm_update (1 samples, 0.02%)ccaes_vng_gcm_encrypt (1 samples, 0.02%)Encrypt_Main_Loop (1 samples, 0.02%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (216 samples, 4.06%)<fut..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (216 samples, 4.06%)<fut..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (216 samples, 4.06%)<hyp..hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (216 samples, 4.06%)hype..hyper::proto::h1::io::Buffered<T,B>::poll_flush (6 samples, 0.11%)tokio_native_tls::TlsStream<S>::with_context (2 samples, 0.04%)ccecdh_compute_shared_secret (1 samples, 0.02%)ccecdh_compute_shared_secret_ws (1 samples, 0.02%)ccec_mult_blinded_ws (1 samples, 0.02%)ccec_mult_default_ws (1 samples, 0.02%)ccec_mult_XYCZaddC_ws (1 samples, 0.02%)cczp_sub_default_ws (1 samples, 0.02%)ccn_cond_add (1 samples, 0.02%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.04%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.04%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (2 samples, 0.04%)reqwest::connect::with_timeout::_{{closure}} (2 samples, 0.04%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (2 samples, 0.04%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (2 samples, 0.04%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (2 samples, 0.04%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (2 samples, 0.04%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (2 samples, 0.04%)SSLHandshake (2 samples, 0.04%)SSLHandshakeProceed (2 samples, 0.04%)tls_handshake_continue (2 samples, 0.04%)SSLAdvanceHandshake (2 samples, 0.04%)SSLPrepareAndQueueMessage (2 samples, 0.04%)SSLEncodeKeyExchange (2 samples, 0.04%)sslEcdhCreateKey (1 samples, 0.02%)ccec_generate_key (1 samples, 0.02%)ccec_generate_key_fips_ws (1 samples, 0.02%)ccec_pairwise_consistency_check_ws (1 samples, 0.02%)ccec_verify_composite_msg_ws (1 samples, 0.02%)ccec_verify_composite_digest_ws (1 samples, 0.02%)ccec_verify_internal_with_base_ws (1 samples, 0.02%)ccec_twin_mult_ws (1 samples, 0.02%)ccec_double_ws (1 samples, 0.02%)ccn_sub_asm (1 samples, 0.02%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (3 samples, 0.06%)tokio::runtime::task::state::State::transition_to_idle (1 samples, 0.02%)tokio::runtime::task::state::State::transition_to_running (4 samples, 0.08%)tokio::runtime::task::harness::Harness<T,S>::poll (3,439 samples, 64.67%)tokio::runtime::task::harness::Harness<T,S>::polltorii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task (3,445 samples, 64.78%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::task::raw::poll (1 samples, 0.02%)tokio::runtime::scheduler::multi_thread::worker::Context::run (5,239 samples, 98.51%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (4 samples, 0.08%)all (5,318 samples, 100%)thread_start (5,248 samples, 98.68%)thread_start_pthread_start (5,248 samples, 98.68%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (5,248 samples, 98.68%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (5,248 samples, 98.68%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (5,248 samples, 98.68%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (5,248 samples, 98.68%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (5,248 samples, 98.68%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (5,248 samples, 98.68%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (5,248 samples, 98.68%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (5,242 samples, 98.57%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (5,242 samples, 98.57%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (5,242 samples, 98.57%)tokio::runtime::context::scoped::Scoped<T>::settokio::runtime::scheduler::multi_thread::worker::Context::run_task (1 samples, 0.02%) \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-inflight-1.svg b/bins/torii-tokens/flamegraph-inflight-1.svg new file mode 100644 index 0000000..a4e10e5 --- /dev/null +++ b/bins/torii-tokens/flamegraph-inflight-1.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_0::operator()() const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::APIs::runAllInitializersForMain() (2 samples, 0.03%)dyld4::PrebuiltLoader::runInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.01%)mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)mach_o::Header::forEachLoadCommand(void (load_command const*, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.01%)invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)libSystem_initializer (1 samples, 0.01%)_libtrace_init (1 samples, 0.01%)_dispatch_lane_create_with_target (1 samples, 0.01%)_platform_strlen (1 samples, 0.01%)dyld4::JustInTimeLoader::applyFixups(Diagnostics&, dyld4::RuntimeState&, dyld4::DyldCacheDataConstLazyScopedWriter&, bool, lsl::Vector<std::__1::pair<dyld4::Loader const*, char const*>>*) const (1 samples, 0.01%)dyld4::Loader::applyFixupsGeneric(Diagnostics&, dyld4::RuntimeState&, unsigned long long, dyld3::Array<void const*> const&, dyld3::Array<void const*> const&, bool, dyld3::Array<dyld4::Loader::MissingFlatLazySymbol> const&) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachRebaseLocation_Opcodes(Diagnostics&, void (unsigned long long, bool&) block_pointer) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachRebase_Opcodes(Diagnostics&, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, void (char const*, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, bool, unsigned int, unsigned char, unsigned long long, dyld3::MachOAnalyzer::Rebase, bool&) block_pointer) const (1 samples, 0.01%)dyld4::JustInTimeLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::loadDependents(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&) (1 samples, 0.01%)dyld4::PrebuiltLoader::map(Diagnostics&, dyld4::RuntimeState&, dyld4::Loader::LoadOptions const&, bool) const (1 samples, 0.01%)dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (5 samples, 0.07%)dyld4::RuntimeState::notifyDtrace(std::__1::span<dyld4::Loader const*, 18446744073709551615ul> const&) (1 samples, 0.01%)dyld3::MachOFile::forEachDOFSection(Diagnostics&, void (unsigned int) block_pointer) const (1 samples, 0.01%)mach_o::Header::forEachSection(void (mach_o::Header::SegmentInfo const&, mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)mach_o::Header::forEachLoadCommand(void (load_command const*, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SegmentInfo const&, mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)clap_builder::derive::Parser::parse (1 samples, 0.01%)<torii_tokens::config::Config as clap_builder::derive::Args>::augment_args (1 samples, 0.01%)<T as futures_util::fns::FnMut1<A>>::call_mut (1 samples, 0.01%)sqlx_postgres::any::_<impl core::convert::TryFrom<&sqlx_postgres::row::PgRow> for sqlx_core::any::row::AnyRow>::try_from (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::ext::async_stream::Yielder<T>::yield::_{{closure}} (1 samples, 0.01%)system_configuration::dynamic_store::SCDynamicStore::get_proxies (1 samples, 0.01%)SCDynamicStoreCopyProxiesWithOptions (1 samples, 0.01%)_CFPreferencesCopyAppValueWithContainerAndConfiguration (1 samples, 0.01%)-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] (1 samples, 0.01%)-[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] (1 samples, 0.01%)__108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke (1 samples, 0.01%)__76-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:]_block_invoke (1 samples, 0.01%)-[CFPrefsSource copyValueForKey:] (1 samples, 0.01%)-[CFPrefsSearchListSource alreadylocked_copyValueForKey:] (1 samples, 0.01%)-[CFPrefsSearchListSource alreadylocked_getDictionary:] (1 samples, 0.01%)-[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:] (1 samples, 0.01%)-[CFPrefsSearchListSource synchronouslySendSystemMessage:andUserMessage:andDirectMessage:replyHandler:] (1 samples, 0.01%)CFPREFERENCES_IS_WAITING_FOR_SYSTEM_AND_USER_CFPREFSDS (1 samples, 0.01%)__103-[CFPrefsSearchListSource synchronouslySendSystemMessage:andUserMessage:andDirectMessage:replyHandler:]_block_invoke.49 (1 samples, 0.01%)dispatch_apply (1 samples, 0.01%)_dispatch_apply_with_attr_f (1 samples, 0.01%)_dispatch_apply_invoke_and_wait (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)_dispatch_apply_invoke3 (1 samples, 0.01%)_dispatch_client_callout2 (1 samples, 0.01%)__103-[CFPrefsSearchListSource synchronouslySendSystemMessage:andUserMessage:andDirectMessage:replyHandler:]_block_invoke (1 samples, 0.01%)-[_CFXPreferences withConnectionForRole:andUserIdentifier:performBlock:] (1 samples, 0.01%)__103-[CFPrefsSearchListSource synchronouslySendSystemMessage:andUserMessage:andDirectMessage:replyHandler:]_block_invoke_2 (1 samples, 0.01%)__80-[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:]_block_invoke (1 samples, 0.01%)-[CFPrefsSearchListSource handleReply:toRequestNewDataMessage:onConnection:retryCount:error:] (1 samples, 0.01%)xpc_array_apply (1 samples, 0.01%)__93-[CFPrefsSearchListSource handleReply:toRequestNewDataMessage:onConnection:retryCount:error:]_block_invoke (1 samples, 0.01%)-[CFPrefsPlistSource handleReply:toRequestNewDataMessage:onConnection:retryCount:error:] (1 samples, 0.01%)_xpc_dictionary_look_up (1 samples, 0.01%)_xpc_dictionary_look_up_table (1 samples, 0.01%)_hash_bucket (1 samples, 0.01%)<reqwest::async_impl::client::Client as core::default::Default>::default (2 samples, 0.03%)reqwest::async_impl::client::ClientBuilder::build (2 samples, 0.03%)hyper_util::client::proxy::matcher::Matcher::from_system (2 samples, 0.03%)hyper_util::client::proxy::matcher::mac::with_system (2 samples, 0.03%)system_configuration::dynamic_store::SCDynamicStoreBuilder<T>::build (1 samples, 0.01%)system_configuration::dynamic_store::SCDynamicStore::create (1 samples, 0.01%)SCDynamicStoreCreateWithOptions (1 samples, 0.01%)__SCDynamicStoreCreateInternal (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)____SCDynamicStoreInitialize_block_invoke (1 samples, 0.01%)os_state_add_handler (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)_os_trace_init_slow (1 samples, 0.01%)firehose_client_reconnect (1 samples, 0.01%)firehose_send_register (1 samples, 0.01%)mach_msg (1 samples, 0.01%)mach_msg_overwrite (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)mach_absolute_time (2 samples, 0.03%)rusqlite::inner_connection::InnerConnection::open_with_flags (1 samples, 0.01%)openDatabase (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)postgres_protocol::authentication::sasl::hi (3 samples, 0.04%)sha2::sha256::compress256 (3 samples, 0.04%)tokio_postgres::connect::_{{closure}} (9 samples, 0.12%)tokio_postgres::connect::connect_once::_{{closure}} (9 samples, 0.12%)tokio_postgres::connect_raw::connect_raw::_{{closure}} (9 samples, 0.12%)postgres_protocol::authentication::sasl::ScramSha256::update (9 samples, 0.12%)sha2::sha256::compress256 (6 samples, 0.08%)tonic_reflection::server::Builder::build_v1 (1 samples, 0.01%)tonic_reflection::server::ReflectionServiceState::new (1 samples, 0.01%)prost::message::Message::decode (1 samples, 0.01%)prost::encoding::message::merge_repeated (1 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sha2::sha256::compress256 (2 samples, 0.03%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (3 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::new_arc (1 samples, 0.01%)event_listener::Event<T>::listen (1 samples, 0.01%)event_listener::Event<T>::inner (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<alloc::borrow::Cow<B> as core::fmt::Display>::fmt (1 samples, 0.01%)torii::etl::engine_db::EngineDb::new::_{{closure}} (5 samples, 0.07%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.03%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sha2::sha256::compress256 (1 samples, 0.01%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sha2::sha256::compress256 (2 samples, 0.03%)sha2::sha256::compress256 (1 samples, 0.01%)torii::run::_{{closure}} (4 samples, 0.05%)torii::etl::engine_db::EngineDb::new::_{{closure}} (4 samples, 0.05%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.03%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (1 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (1 samples, 0.01%)tokio::net::tcp::stream::TcpStream::try_write (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.01%)__sendto (1 samples, 0.01%)start (35 samples, 0.47%)main (30 samples, 0.40%)std::rt::lang_start_internal (30 samples, 0.40%)std::rt::lang_start::_{{closure}} (30 samples, 0.40%)std::sys::backtrace::__rust_begin_short_backtrace (30 samples, 0.40%)torii_tokens::main (30 samples, 0.40%)tokio::runtime::park::CachedParkThread::block_on (30 samples, 0.40%)torii_tokens::run_indexer::_{{closure}} (29 samples, 0.39%)torii_erc721::grpc_service::Erc721Service::new (1 samples, 0.01%)tokio::sync::broadcast::channel (1 samples, 0.01%)start_wqthread (1 samples, 0.01%)_pthread_wqthread (1 samples, 0.01%)_dispatch_worker_thread2 (1 samples, 0.01%)_dispatch_root_queue_drain (1 samples, 0.01%)_gai_nat64_second_pass (1 samples, 0.01%)nw_nat64_v4_address_requires_synthesis (1 samples, 0.01%)nw_path_create_evaluator_for_endpoint (1 samples, 0.01%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (1 samples, 0.01%)nw_path_snapshot_path(NWConcrete_nw_path*) (1 samples, 0.01%)_nw_path_update_is_viableTm (1 samples, 0.01%)0x1960ad66c (1 samples, 0.01%)0x1960af8b4 (1 samples, 0.01%)0x1960a7f90 (1 samples, 0.01%)0x1960a871c (1 samples, 0.01%)_nw_parameters_create_legacy_tcp_socket (1 samples, 0.01%)0x196305ff0 (1 samples, 0.01%)0x195ff2268 (1 samples, 0.01%)0x196380860 (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)0x196052324 (1 samples, 0.01%)nw_context_copy_implicit_context (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__nw_context_copy_implicit_context_block_invoke (1 samples, 0.01%)-[NWConcrete_nw_context initWithIdentifier:] (1 samples, 0.01%)networkd_settings_get_int64_with_default (1 samples, 0.01%)networkd_settings_init (1 samples, 0.01%)networkd_settings_update_from_token(int) (1 samples, 0.01%)networkd_settings_read_from_file() (1 samples, 0.01%)__open (1 samples, 0.01%)nw_path_libinfo_path_check (2 samples, 0.03%)nw_path_create_evaluator_for_endpoint (1 samples, 0.01%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (1 samples, 0.01%)nw_path_parse_necp_result (1 samples, 0.01%)_nw_path_group_members_appendTm (1 samples, 0.01%)0x196376a18 (1 samples, 0.01%)0x195ffba3c (1 samples, 0.01%)0x2474ce6e0 (1 samples, 0.01%)0x2474ce0fc (1 samples, 0.01%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (4 samples, 0.05%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (4 samples, 0.05%)getaddrinfo (4 samples, 0.05%)si_addrinfo (4 samples, 0.05%)search_addrinfo (1 samples, 0.01%)mdns_addrinfo (1 samples, 0.01%)_mdns_search_ex (1 samples, 0.01%)DNSServiceProcessResult (1 samples, 0.01%)__recvfrom_nocancel (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (4 samples, 0.05%)__floatuntidf (1 samples, 0.01%)pow (2 samples, 0.03%)DYLD-STUB$$clock_gettime (1 samples, 0.01%)mach_absolute_time (30 samples, 0.40%)clock_gettime_nsec_np (32 samples, 0.43%)mach_timebase_info (1 samples, 0.01%)mach_absolute_time (7 samples, 0.09%)std::sys::pal::unix::time::Timespec::now (44 samples, 0.59%)clock_gettime (41 samples, 0.55%)mach_timebase_info (1 samples, 0.01%)DYLD-STUB$$clock_gettime (4 samples, 0.05%)DYLD-STUB$$mach_timebase_info (1 samples, 0.01%)clock_gettime_nsec_np (13 samples, 0.17%)mach_absolute_time (9 samples, 0.12%)mach_absolute_time (5 samples, 0.07%)clock_gettime (22 samples, 0.30%)mach_timebase_info (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (28 samples, 0.38%)clock_gettime_nsec_np (1 samples, 0.01%)std::time::Instant::elapsed (33 samples, 0.44%)std::sys::pal::unix::time::Timespec::sub_timespec (1 samples, 0.01%)std::time::Instant::now (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::idle::Idle::transition_worker_to_parked (6 samples, 0.08%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (10 samples, 0.13%)__psynch_cvwait (2 samples, 0.03%)_pthread_cond_wait (7 samples, 0.09%)__psynch_cvwait (7 samples, 0.09%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (11 samples, 0.15%)parking_lot::condvar::Condvar::wait_until_internal (11 samples, 0.15%)pthread_mutex_lock (1 samples, 0.01%)tokio::runtime::io::driver::Driver::turn (2 samples, 0.03%)clock_gettime (1 samples, 0.01%)DYLD-STUB$$clock_gettime (4 samples, 0.05%)DYLD-STUB$$mach_absolute_time (6 samples, 0.08%)DYLD-STUB$$mach_timebase_info (3 samples, 0.04%)mach_absolute_time (66 samples, 0.89%)clock_gettime_nsec_np (87 samples, 1.17%)mach_timebase_info (3 samples, 0.04%)clock_gettime (104 samples, 1.39%)mach_absolute_time (15 samples, 0.20%)std::sys::pal::unix::time::Timespec::now (112 samples, 1.50%)clock_gettime_nsec_np (1 samples, 0.01%)std::time::Instant::duration_since (2 samples, 0.03%)std::sys::pal::unix::time::Timespec::sub_timespec (1 samples, 0.01%)std::time::Instant::now (3 samples, 0.04%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (9 samples, 0.12%)kevent (268 samples, 3.59%)keve..mio::poll::Poll::poll (1,549 samples, 20.78%)mio::poll::Poll::pollkevent (1,525 samples, 20.45%)kevent_tlv_get_addr (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (6 samples, 0.08%)tokio::runtime::context::with_scheduler (6 samples, 0.08%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)tokio::runtime::task::raw::schedule (4 samples, 0.05%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (50 samples, 0.67%)tokio::runtime::task::waker::wake_by_val (26 samples, 0.35%)tokio::runtime::task::state::State::transition_to_notified_by_val (11 samples, 0.15%)tokio::runtime::io::driver::Driver::turn (1,923 samples, 25.79%)tokio::runtime::io::driver::Driver::turntokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::signal::Driver::process (10 samples, 0.13%)tokio::runtime::time::wheel::Wheel::next_expiration (4 samples, 0.05%)tokio::runtime::time::wheel::level::Level::next_expiration (4 samples, 0.05%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (19 samples, 0.25%)tokio::runtime::time::wheel::Wheel::poll (11 samples, 0.15%)tokio::runtime::time::wheel::Wheel::next_expiration (6 samples, 0.08%)tokio::runtime::time::wheel::level::Level::next_expiration (5 samples, 0.07%)tokio::runtime::time::wheel::Wheel::next_expiration (3 samples, 0.04%)tokio::runtime::time::wheel::level::Level::next_expiration (3 samples, 0.04%)tokio::runtime::time::Driver::park_internal (2,094 samples, 28.08%)tokio::runtime::time::Driver::park_internaltokio::runtime::time::wheel::Wheel::poll (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::park::Parker::park (2,155 samples, 28.90%)tokio::runtime::scheduler::multi_thread::park:..tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (2 samples, 0.03%)DYLD-STUB$$clock_gettime (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.03%)clock_gettime (1 samples, 0.01%)clock_gettime_nsec_np (1 samples, 0.01%)DYLD-STUB$$mach_timebase_info (1 samples, 0.01%)kevent (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (23 samples, 0.31%)tokio::runtime::time::Driver::park_internal (23 samples, 0.31%)tokio::runtime::io::driver::Driver::turn (20 samples, 0.27%)mio::poll::Poll::poll (17 samples, 0.23%)kevent (16 samples, 0.21%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (2,205 samples, 29.57%)tokio::runtime::scheduler::multi_thread::worker:..tokio::runtime::time::Driver::park_internal (1 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.03%)mio::waker::Waker::wake (2 samples, 0.03%)kevent (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::park::Unparker::unpark (1 samples, 0.01%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (8 samples, 0.11%)_tlv_get_addr (3 samples, 0.04%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (1 samples, 0.01%)_free (1 samples, 0.01%)_tlv_get_addr (1 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.04%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.04%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (3 samples, 0.04%)__sendto (3 samples, 0.04%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (5 samples, 0.07%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (5 samples, 0.07%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (5 samples, 0.07%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (2 samples, 0.03%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (2 samples, 0.03%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (2 samples, 0.03%)tokio::runtime::io::registration::Registration::try_io (2 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.03%)__recvfrom (2 samples, 0.03%)tokio::runtime::task::core::TaskIdGuard::enter (6 samples, 0.08%)_tlv_get_addr (2 samples, 0.03%)<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (1 samples, 0.01%)core::hash::BuildHasher::hash_one (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.08%)alloc::raw_vec::finish_grow (6 samples, 0.08%)_realloc (6 samples, 0.08%)_malloc_zone_realloc (6 samples, 0.08%)xzm_realloc (5 samples, 0.07%)_xzm_xzone_malloc (2 samples, 0.03%)alloc::fmt::format::format_inner (15 samples, 0.20%)core::fmt::write (14 samples, 0.19%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (12 samples, 0.16%)core::fmt::write (10 samples, 0.13%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (10 samples, 0.13%)core::fmt::write (10 samples, 0.13%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (9 samples, 0.12%)_platform_memmove (1 samples, 0.01%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (17 samples, 0.23%)torii::etl::envelope::Envelope::new (1 samples, 0.01%)chrono::offset::utc::Utc::now (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (1 samples, 0.01%)clock_gettime (1 samples, 0.01%)gettimeofday (1 samples, 0.01%)__commpage_gettimeofday_internal (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_free (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_realloc (4 samples, 0.05%)xzm_malloc_zone_size (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)__rustc::__rdl_realloc (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)default_zone_realloc (1 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_realloc (10 samples, 0.13%)xzm_realloc (7 samples, 0.09%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (19 samples, 0.25%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (19 samples, 0.25%)alloc::raw_vec::finish_grow (18 samples, 0.24%)_realloc (16 samples, 0.21%)xzm_malloc_zone_size (5 samples, 0.07%)alloc::fmt::format::format_inner (43 samples, 0.58%)core::fmt::write (43 samples, 0.58%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (40 samples, 0.54%)core::fmt::write (31 samples, 0.42%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (31 samples, 0.42%)core::fmt::write (29 samples, 0.39%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (27 samples, 0.36%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::hash::BuildHasher::hash_one (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (5 samples, 0.07%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.01%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (77 samples, 1.03%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (57 samples, 0.76%)torii::etl::envelope::Envelope::new (2 samples, 0.03%)chrono::offset::utc::Utc::now (2 samples, 0.03%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.03%)clock_gettime (2 samples, 0.03%)gettimeofday (2 samples, 0.03%)__commpage_gettimeofday_internal (2 samples, 0.03%)mach_absolute_time (2 samples, 0.03%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event (1 samples, 0.01%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (2 samples, 0.03%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)core::fmt::Formatter::pad_integral (1 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (95 samples, 1.27%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (82 samples, 1.10%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)__bzero (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (102 samples, 1.37%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)kevent (2 samples, 0.03%)<deduplicated_symbol> (12 samples, 0.16%)mio::waker::Waker::wake (10 samples, 0.13%)kevent (10 samples, 0.13%)pthread_cond_signal (4 samples, 0.05%)__psynch_cvsignal (3 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (20 samples, 0.27%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (20 samples, 0.27%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (20 samples, 0.27%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (20 samples, 0.27%)futures_channel::mpsc::Receiver<T>::next_message (20 samples, 0.27%)tokio::runtime::task::waker::wake_by_val (18 samples, 0.24%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (18 samples, 0.24%)tokio::runtime::context::with_scheduler (18 samples, 0.24%)parking_lot::condvar::Condvar::notify_one_slow (5 samples, 0.07%)pthread_mutex_unlock (1 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (23 samples, 0.31%)http_body_util::collected::Collected<B>::push_frame (1 samples, 0.01%)alloc::collections::vec_deque::VecDeque<T,A>::grow (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_platform_memmove (12 samples, 0.16%)encoding_rs::Encoding::decode_without_bom_handling (8 samples, 0.11%)encoding_rs::utf_8::utf8_valid_up_to (8 samples, 0.11%)DYLD-STUB$$memcpy (1 samples, 0.01%)_platform_memmove (19 samples, 0.25%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (21 samples, 0.28%)bytes::bytes_mut::shared_v_drop (1 samples, 0.01%)_xzm_xzone_free_freelist (1 samples, 0.01%)_platform_memmove (5 samples, 0.07%)reqwest::async_impl::response::Response::text::_{{closure}} (70 samples, 0.94%)http_body_util::collected::Collected<B>::to_bytes (27 samples, 0.36%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (27 samples, 0.36%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_alloc_segment (1 samples, 0.01%)_xzm_segment_group_init_segment (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.01%)_platform_memcmp (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.05%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.05%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.04%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (3 samples, 0.04%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17 samples, 0.23%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.04%)_xzm_free (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (33 samples, 0.44%)alloc::raw_vec::RawVec<T,A>::grow_one (13 samples, 0.17%)alloc::raw_vec::finish_grow (13 samples, 0.17%)_realloc (9 samples, 0.12%)_malloc_zone_realloc (8 samples, 0.11%)xzm_realloc (7 samples, 0.09%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (4 samples, 0.05%)_xzm_xzone_malloc (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)DYLD-STUB$$memcpy (1 samples, 0.01%)__rustc::__rdl_alloc (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.13%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19 samples, 0.25%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.07%)alloc::raw_vec::finish_grow (5 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_malloc_zone_malloc (3 samples, 0.04%)_platform_memmove (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (8 samples, 0.11%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (29 samples, 0.39%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)_platform_memcmp (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (7 samples, 0.09%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (13 samples, 0.17%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (83 samples, 1.11%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (87 samples, 1.17%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.08%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.03%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (100 samples, 1.34%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (104 samples, 1.39%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (114 samples, 1.53%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (113 samples, 1.52%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.05%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8 samples, 0.11%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.08%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_platform_memmove (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (12 samples, 0.16%)_xzm_xzone_malloc (2 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)_xzm_xzone_malloc (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.07%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (5 samples, 0.07%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.07%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.07%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (34 samples, 0.46%)alloc::raw_vec::RawVec<T,A>::grow_one (8 samples, 0.11%)alloc::raw_vec::finish_grow (8 samples, 0.11%)_realloc (6 samples, 0.08%)_malloc_zone_realloc (6 samples, 0.08%)xzm_realloc (5 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (36 samples, 0.48%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (3 samples, 0.04%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (163 samples, 2.19%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (163 samples, 2.19%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (163 samples, 2.19%)<..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (163 samples, 2.19%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (163 samples, 2.19%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (163 samples, 2.19%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (163 samples, 2.19%)<..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (49 samples, 0.66%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (49 samples, 0.66%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (49 samples, 0.66%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (5 samples, 0.07%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_xzm_free (6 samples, 0.08%)_platform_memset (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (33 samples, 0.44%)core::ptr::drop_in_place<serde_core::private::content::Content> (33 samples, 0.44%)core::ptr::drop_in_place<serde_core::private::content::Content> (33 samples, 0.44%)core::ptr::drop_in_place<serde_core::private::content::Content> (33 samples, 0.44%)core::ptr::drop_in_place<serde_core::private::content::Content> (32 samples, 0.43%)core::ptr::drop_in_place<serde_core::private::content::Content> (25 samples, 0.34%)core::ptr::drop_in_place<serde_core::private::content::Content> (21 samples, 0.28%)core::ptr::drop_in_place<serde_core::private::content::Content> (12 samples, 0.16%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.07%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.05%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (6 samples, 0.08%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (9 samples, 0.12%)alloc::raw_vec::finish_grow (8 samples, 0.11%)_realloc (7 samples, 0.09%)_malloc_zone_realloc (6 samples, 0.08%)xzm_realloc (5 samples, 0.07%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (3 samples, 0.04%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (6 samples, 0.08%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)alloc::raw_vec::finish_grow (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (11 samples, 0.15%)_malloc_zone_malloc (1 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.05%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)default_zone_realloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_realloc (13 samples, 0.17%)_malloc_zone_realloc (12 samples, 0.16%)xzm_realloc (9 samples, 0.12%)_xzm_xzone_malloc_tiny (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (23 samples, 0.31%)alloc::raw_vec::finish_grow (22 samples, 0.30%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (52 samples, 0.70%)serde_core::de::Deserializer::__deserialize_content_v1 (16 samples, 0.21%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (12 samples, 0.16%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (95 samples, 1.27%)serde_core::de::Deserializer::__deserialize_content_v1 (66 samples, 0.89%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.05%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (131 samples, 1.76%)serde_core::de::Deserializer::__deserialize_content_v1 (113 samples, 1.52%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (153 samples, 2.05%)<..serde_core::de::Deserializer::__deserialize_content_v1 (145 samples, 1.94%)s..serde_json::de::Deserializer<R>::end_seq (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (424 samples, 5.69%)<starkn..serde_json::de::from_str (352 samples, 4.72%)serde_..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (352 samples, 4.72%)<&mut ..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (352 samples, 4.72%)<serde..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (352 samples, 4.72%)<serde..serde_core::de::Deserializer::__deserialize_content_v1 (156 samples, 2.09%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (156 samples, 2.09%)<..serde_core::de::Deserializer::__deserialize_content_v1 (156 samples, 2.09%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (156 samples, 2.09%)<..serde_core::de::Deserializer::__deserialize_content_v1 (156 samples, 2.09%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (156 samples, 2.09%)<..serde_core::de::Deserializer::__deserialize_content_v1 (156 samples, 2.09%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (156 samples, 2.09%)<..serde_core::de::Deserializer::__deserialize_content_v1 (154 samples, 2.07%)s..<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)<&mut A as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.03%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::Visitor>::visit_string (1 samples, 0.01%)_free (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.07%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.03%)DYLD-STUB$$memcpy (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_platform_memmove (3 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (9 samples, 0.12%)_xzm_xzone_malloc (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (16 samples, 0.21%)serde::private::de::content::content_clone (13 samples, 0.17%)serde::private::de::content::content_clone (11 samples, 0.15%)serde::private::de::content::content_clone (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (34 samples, 0.46%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (29 samples, 0.39%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (16 samples, 0.21%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (35 samples, 0.47%)starknet_types_core::felt::Felt::from_hex (35 samples, 0.47%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (38 samples, 0.51%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (38 samples, 0.51%)_xzm_free (3 samples, 0.04%)_platform_memset (1 samples, 0.01%)_free (1 samples, 0.01%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (43 samples, 0.58%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (43 samples, 0.58%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (53 samples, 0.71%)starknet_types_core::felt::Felt::from_hex (53 samples, 0.71%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (53 samples, 0.71%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (44 samples, 0.59%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (23 samples, 0.31%)_free (1 samples, 0.01%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (59 samples, 0.79%)_xzm_free (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (61 samples, 0.82%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)core::str::_<impl str>::trim_start_matches (1 samples, 0.01%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (132 samples, 1.77%)s..<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (68 samples, 0.91%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (68 samples, 0.91%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (5 samples, 0.07%)_platform_memmove (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (4 samples, 0.05%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rdl_alloc (2 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.05%)_platform_memmove (6 samples, 0.08%)_xzm_xzone_malloc (3 samples, 0.04%)<alloc::string::String as core::clone::Clone>::clone (23 samples, 0.31%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (51 samples, 0.68%)serde::private::de::content::content_clone (47 samples, 0.63%)serde::private::de::content::content_clone (44 samples, 0.59%)serde::private::de::content::content_clone (38 samples, 0.51%)serde::private::de::content::content_clone (29 samples, 0.39%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.09%)starknet_types_core::felt::Felt::from_hex (7 samples, 0.09%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (7 samples, 0.09%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (7 samples, 0.09%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (28 samples, 0.38%)starknet_types_core::felt::Felt::from_hex (27 samples, 0.36%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (27 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (26 samples, 0.35%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (14 samples, 0.19%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (128 samples, 1.72%)starknet_types_core::felt::Felt::from_hex (125 samples, 1.68%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (125 samples, 1.68%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (113 samples, 1.52%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (63 samples, 0.84%)_free (2 samples, 0.03%)_xzm_free (7 samples, 0.09%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (147 samples, 1.97%)<.._xzm_xzone_malloc_tiny (3 samples, 0.04%)_platform_memset (2 samples, 0.03%)_xzm_free (6 samples, 0.08%)mach_absolute_time (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (154 samples, 2.07%)<.._xzm_xzone_malloc (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (5 samples, 0.07%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (193 samples, 2.59%)<s..serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.01%)<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (194 samples, 2.60%)<s..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (194 samples, 2.60%)<s.._xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (397 samples, 5.32%)<serde:..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (395 samples, 5.30%)<serde..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (395 samples, 5.30%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (395 samples, 5.30%)<serde..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (262 samples, 3.51%)sta..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (211 samples, 2.83%)<s..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (210 samples, 2.82%)<s.._xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (4 samples, 0.05%)_platform_memset (1 samples, 0.01%)_xzm_xzone_free_freelist (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)__rustc::__rdl_dealloc (1 samples, 0.01%)_free (3 samples, 0.04%)_xzm_free (7 samples, 0.09%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_free (3 samples, 0.04%)_xzm_free (12 samples, 0.16%)_platform_memset (3 samples, 0.04%)_free (1 samples, 0.01%)_xzm_free (11 samples, 0.15%)_platform_memset (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (64 samples, 0.86%)core::ptr::drop_in_place<serde_core::private::content::Content> (64 samples, 0.86%)core::ptr::drop_in_place<serde_core::private::content::Content> (64 samples, 0.86%)core::ptr::drop_in_place<serde_core::private::content::Content> (63 samples, 0.84%)core::ptr::drop_in_place<serde_core::private::content::Content> (53 samples, 0.71%)core::ptr::drop_in_place<serde_core::private::content::Content> (40 samples, 0.54%)core::ptr::drop_in_place<serde_core::private::content::Content> (21 samples, 0.28%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.05%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (2 samples, 0.03%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)_free (2 samples, 0.03%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (6 samples, 0.08%)_xzm_free (1 samples, 0.01%)<serde_json::value::de::SeqDeserializer as serde_core::de::SeqAccess>::size_hint (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (16 samples, 0.21%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.07%)_free (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (41 samples, 0.55%)serde_core::de::Deserializer::__deserialize_content_v1 (23 samples, 0.31%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (63 samples, 0.84%)serde_core::de::Deserializer::__deserialize_content_v1 (60 samples, 0.80%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (53 samples, 0.71%)serde_core::de::Deserializer::__deserialize_content_v1 (45 samples, 0.60%)_xzm_xzone_malloc (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (953 samples, 12.78%)<starknet_providers..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (952 samples, 12.77%)starknet_providers:..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (527 samples, 7.07%)starknet_..serde_core::de::Deserializer::__deserialize_content_v1 (66 samples, 0.89%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (66 samples, 0.89%)serde_core::de::Deserializer::__deserialize_content_v1 (65 samples, 0.87%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (65 samples, 0.87%)serde_core::de::Deserializer::__deserialize_content_v1 (65 samples, 0.87%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (65 samples, 0.87%)serde_core::de::Deserializer::__deserialize_content_v1 (64 samples, 0.86%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)ccecdh_compute_shared_secret (1 samples, 0.01%)ccecdh_compute_shared_secret_ws (1 samples, 0.01%)ccec_mult_blinded_ws (1 samples, 0.01%)ccec_mult_default_ws (1 samples, 0.01%)ccec_mult_XYCZaddC_ws (1 samples, 0.01%)ccn_sub_asm (1 samples, 0.01%)tls_handshake_continue (2 samples, 0.03%)SSLAdvanceHandshake (2 samples, 0.03%)SSLPrepareAndQueueMessage (2 samples, 0.03%)SSLEncodeKeyExchange (2 samples, 0.03%)sslEcdhCreateKey (1 samples, 0.01%)ccec_generate_key (1 samples, 0.01%)ccec_generate_key_fips_ws (1 samples, 0.01%)ccec_generate_key_internal_fips_ws (1 samples, 0.01%)generate (1 samples, 0.01%)ccrng_crypto_generate (1 samples, 0.01%)ccdrbg_generate (1 samples, 0.01%)generate (1 samples, 0.01%)ccaes_vng_ctr_crypt (1 samples, 0.01%)SSLProcessHandshakeRecord (1 samples, 0.01%)SSLUpdateHandshakeMacs (1 samples, 0.01%)HashSHA256Update (1 samples, 0.01%)ccdigest_update (1 samples, 0.01%)AccelerateCrypto_SHA256_compress (1 samples, 0.01%)Security::MetaRecord::unpackRecord(Security::ReadSection const&, Security::Allocator&, cssm_db_record_attribute_data*, Security::CssmData*, unsigned int) const (1 samples, 0.01%)Security::MetaAttribute::unpackNumberOfValues(Security::ReadSection const&, unsigned int&, unsigned int&) const (1 samples, 0.01%)Security::KeychainCore::Certificate::publicKey() (2 samples, 0.03%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (2 samples, 0.03%)Security::KeychainCore::Certificate::clHandle() (2 samples, 0.03%)Security::CssmClient::AttachmentImpl::activate() (2 samples, 0.03%)Security::CssmClient::ModuleImpl::activate() (2 samples, 0.03%)CSSM_ModuleLoad (2 samples, 0.03%)Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) (2 samples, 0.03%)Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) (2 samples, 0.03%)Security::MDSClient::Directory::cdsa() const (2 samples, 0.03%)mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) (2 samples, 0.03%)Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.03%)Security::DatabaseSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.03%)Security::DatabaseManager::dbOpen(Security::DatabaseSession&, Security::DbName const&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.03%)Security::Database::_dbOpen(Security::DatabaseSession&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.03%)Security::AppleDatabase::dbOpen(Security::DbContext&) (2 samples, 0.03%)Security::DbModifier::getDbVersion(bool) (2 samples, 0.03%)Security::TrackingAllocator::~TrackingAllocator() (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)countLegacyAPI (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__countLegacyAPI_block_invoke (1 samples, 0.01%)+[SecCoreAnalytics sendEventLazy:builder:] (1 samples, 0.01%)AnalyticsSendEventInternal(NSString const*, NSDictionary<NSString*, NSObject*>* () block_pointer, XPCMessagePriority, EventPayloadFormat, NSDictionary<NSString*, NSObject*>*) (1 samples, 0.01%)CoreAnalytics::Client::sendEventAlways(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::function<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>> ()> const&, CoreAnalytics::SendEventOptions) (1 samples, 0.01%)object_getClass (1 samples, 0.01%)SSLHandshake (8 samples, 0.11%)SSLHandshakeProceed (8 samples, 0.11%)tls_handshake_process (6 samples, 0.08%)SSLProcessHandshakeRecordInner (5 samples, 0.07%)tls_handshake_message_callback (4 samples, 0.05%)tls_helper_set_peer_pubkey (4 samples, 0.05%)SecTrustCopyPublicKey (4 samples, 0.05%)SecCertificateCopyPublicKey$LEGACYMAC (4 samples, 0.05%)countLegacyAPIEnabledForThread (1 samples, 0.01%)_objc_msgSend_uncached (1 samples, 0.01%)lookUpImpOrForward (1 samples, 0.01%)xzm_malloc_zone_malloc_type_malloc_with_options (1 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (9 samples, 0.12%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (9 samples, 0.12%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (9 samples, 0.12%)security_framework::trust::SecTrust::evaluate_with_error (1 samples, 0.01%)SecTrustEvaluateInternal (1 samples, 0.01%)SecTrustEvaluateIfNecessary (1 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke (1 samples, 0.01%)_os_activity_initiate_impl (1 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke_2 (1 samples, 0.01%)SecOSStatusWith (1 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke_3 (1 samples, 0.01%)securityd_send_sync_and_do (1 samples, 0.01%)__handle_trust_evaluate_xpc_block_invoke_2 (1 samples, 0.01%)SecXPCDictionaryCopyDictionaryOptional (1 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (1 samples, 0.01%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (1 samples, 0.01%)der_decode_plist (1 samples, 0.01%)der_decode_dictionary (1 samples, 0.01%)der_decode_plist (1 samples, 0.01%)der_decode_date (1 samples, 0.01%)der_decode_commontime_body (1 samples, 0.01%)SecCFCalendarDoWithZuluCalendar (1 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SecCFCalendarDoWithZuluCalendar_block_invoke (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SecCFCalendarGetZulu_block_invoke (1 samples, 0.01%)@objc static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.01%)specialized static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.01%)protocol witness for _CalendarProtocol.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) in conformance _CalendarGregorian (1 samples, 0.01%)_CalendarGregorian.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) (1 samples, 0.01%)TimeZoneCache.State.findCurrentTimeZone() (1 samples, 0.01%)_objc_msgSend_uncached (1 samples, 0.01%)lookUpImpOrForward (1 samples, 0.01%)getMethodNoSuper_nolock(objc_class*, objc_selector*) (1 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (10 samples, 0.13%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (10 samples, 0.13%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (10 samples, 0.13%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (10 samples, 0.13%)reqwest::connect::with_timeout::_{{closure}} (10 samples, 0.13%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (10 samples, 0.13%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (10 samples, 0.13%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (1 samples, 0.01%)native_tls::imp::TlsConnector::connect (1 samples, 0.01%)security_framework::secure_transport::ClientBuilder::handshake (1 samples, 0.01%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (1 samples, 0.01%)SSLHandshake (1 samples, 0.01%)SSLHandshakeProceed (1 samples, 0.01%)SSLRecordServiceWriteQueueInternal (1 samples, 0.01%)security_framework::secure_transport::write_func (1 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_write (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.01%)__sendto (1 samples, 0.01%)<http::uri::Uri as core::clone::Clone>::clone (1 samples, 0.01%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (12 samples, 0.16%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (12 samples, 0.16%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (12 samples, 0.16%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (12 samples, 0.16%)<hyper_util::common::lazy::Lazy<F,R> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (1 samples, 0.01%)reqwest::connect::with_timeout::_{{closure}} (1 samples, 0.01%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (1 samples, 0.01%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (1 samples, 0.01%)<hyper_util::client::legacy::connect::http::HttpConnector<R> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (1 samples, 0.01%)<reqwest::dns::gai::GaiResolver as reqwest::dns::resolve::Resolve>::resolve (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (13 samples, 0.17%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (13 samples, 0.17%)reqwest::async_impl::response::Response::text::_{{closure}} (1 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (1 samples, 0.01%)http_body_util::collected::Collected<B>::push_frame (1 samples, 0.01%)alloc::collections::vec_deque::VecDeque<T,A>::grow (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)hashbrown::raw::RawTable<T,A>::reserve_rehash (2 samples, 0.03%)sqlx_core::pool::executor::_<impl sqlx_core::executor::Executor for &sqlx_core::pool::Pool<DB>>::fetch_optional::_{{closure}} (1 samples, 0.01%)sqlx_postgres::any::_<impl sqlx_core::any::connection::backend::AnyConnectionBackend for sqlx_postgres::connection::PgConnection>::fetch_optional::_{{closure}} (1 samples, 0.01%)sqlx_postgres::connection::executor::_<impl sqlx_postgres::connection::PgConnection>::run::_{{closure}} (1 samples, 0.01%)sqlx_postgres::connection::executor::_<impl sqlx_postgres::connection::PgConnection>::get_or_prepare::_{{closure}} (1 samples, 0.01%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_internal (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (976 samples, 13.09%)<torii::etl::extract..torii::etl::extractor::starknet_helpers::block_into_contexts (6 samples, 0.08%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (3 samples, 0.04%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_smaller (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)mio::waker::Waker::wake (1 samples, 0.01%)kevent (1 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (3 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (3 samples, 0.04%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (3 samples, 0.04%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (3 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.04%)tokio::runtime::context::with_scheduler (3 samples, 0.04%)parking_lot::condvar::Condvar::notify_one_slow (2 samples, 0.03%)pthread_cond_signal (2 samples, 0.03%)__psynch_cvsignal (2 samples, 0.03%)_platform_memmove (5 samples, 0.07%)encoding_rs::Encoding::decode_without_bom_handling (4 samples, 0.05%)encoding_rs::utf_8::utf8_valid_up_to (4 samples, 0.05%)reqwest::async_impl::response::Response::text::_{{closure}} (20 samples, 0.27%)http_body_util::collected::Collected<B>::to_bytes (8 samples, 0.11%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (8 samples, 0.11%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (8 samples, 0.11%)_platform_memmove (8 samples, 0.11%)serde_core::ser::Serializer::collect_seq (2 samples, 0.03%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (2 samples, 0.03%)serde_core::ser::SerializeMap::serialize_entry (2 samples, 0.03%)serde_json::ser::format_escaped_str (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)DYLD-STUB$$memcpy (3 samples, 0.04%)__rustc::__rdl_alloc (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)_platform_memmove (6 samples, 0.08%)_xzm_xzone_malloc (4 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.30%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.04%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.04%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (38 samples, 0.51%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (38 samples, 0.51%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (38 samples, 0.51%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (37 samples, 0.50%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (37 samples, 0.50%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (3 samples, 0.04%)xzm_segment_group_try_realloc_large_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_smaller (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (4 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (35 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (24 samples, 0.32%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (20 samples, 0.27%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.07%)_platform_memmove (2 samples, 0.03%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (103 samples, 1.38%)serde_json::de::from_str (81 samples, 1.09%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (81 samples, 1.09%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (81 samples, 1.09%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (81 samples, 1.09%)serde_core::de::Deserializer::__deserialize_content_v1 (43 samples, 0.58%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (43 samples, 0.58%)serde_core::de::Deserializer::__deserialize_content_v1 (42 samples, 0.56%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (42 samples, 0.56%)serde_core::de::Deserializer::__deserialize_content_v1 (42 samples, 0.56%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (204 samples, 2.74%)<s..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (204 samples, 2.74%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (200 samples, 2.68%)<s..starknet_types_core::felt::Felt::from_hex (197 samples, 2.64%)st..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (196 samples, 2.63%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (188 samples, 2.52%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (102 samples, 1.37%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (207 samples, 2.78%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (3 samples, 0.04%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_free (3 samples, 0.04%)_xzm_free (8 samples, 0.11%)_platform_memset (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (14 samples, 0.19%)core::ptr::drop_in_place<serde_core::private::content::Content> (13 samples, 0.17%)_xzm_xzone_madvise_batch (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6 samples, 0.08%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (333 samples, 4.47%)<star..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (332 samples, 4.45%)stark..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (229 samples, 3.07%)sta..serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (1 samples, 0.01%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (1 samples, 0.01%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (1 samples, 0.01%)tokio::runtime::io::registration::Registration::try_io (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (1 samples, 0.01%)__recvfrom (1 samples, 0.01%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (4 samples, 0.05%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (4 samples, 0.05%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.04%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.04%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (3 samples, 0.04%)__sendto (3 samples, 0.04%)sqlx_core::any::connection::executor::_<impl sqlx_core::executor::Executor for &mut sqlx_core::any::connection::AnyConnection>::fetch_many (1 samples, 0.01%)sqlx_postgres::any::_<impl sqlx_core::any::connection::backend::AnyConnectionBackend for sqlx_postgres::connection::PgConnection>::fetch_many (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (1 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (1 samples, 0.01%)tokio::net::tcp::stream::TcpStream::try_write (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (1 samples, 0.01%)__sendto (1 samples, 0.01%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (9 samples, 0.12%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (9 samples, 0.12%)<deduplicated_symbol> (9 samples, 0.12%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (9 samples, 0.12%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (9 samples, 0.12%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (9 samples, 0.12%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (4 samples, 0.05%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (4 samples, 0.05%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (2 samples, 0.03%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (1 samples, 0.01%)tokio::runtime::io::registration::Registration::try_io (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (1 samples, 0.01%)__recvfrom (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (5 samples, 0.07%)serde_json::de::from_trait (5 samples, 0.07%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (5 samples, 0.07%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (5 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (5 samples, 0.07%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.05%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.04%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (1 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (4 samples, 0.05%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (3 samples, 0.04%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (4 samples, 0.05%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (4 samples, 0.05%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)DYLD-STUB$$realloc (1 samples, 0.01%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (363 samples, 4.87%)<torii..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (363 samples, 4.87%)torii:..torii::etl::identification::registry::ContractRegistry::run_rules (16 samples, 0.21%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (8 samples, 0.11%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (8 samples, 0.11%)alloc::fmt::format::format_inner (8 samples, 0.11%)core::fmt::write (5 samples, 0.07%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (1 samples, 0.01%)xzm_malloc_zone_size (1 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}}::_{{closure}} (1 samples, 0.01%)tracing_core::event::Event::dispatch (1 samples, 0.01%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (1 samples, 0.01%)std::thread::local::LocalKey<T>::with (1 samples, 0.01%)<std::io::stdio::Stdout as std::io::Write>::write_all (1 samples, 0.01%)<std::io::stdio::StdoutLock as std::io::Write>::write_all (1 samples, 0.01%)write (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (1 samples, 0.01%)tokio_postgres::client::Client::execute::_{{closure}} (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (4 samples, 0.05%)torii::etl::decoder::DecoderId::new (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (1 samples, 0.01%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (1 samples, 0.01%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (1 samples, 0.01%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (1 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.01%)tokio::runtime::context::with_scheduler (1 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (1 samples, 0.01%)pthread_cond_signal (1 samples, 0.01%)_pthread_cond_updateval (1 samples, 0.01%)serde_core::ser::SerializeMap::serialize_entry (1 samples, 0.01%)serde_json::ser::format_escaped_str (1 samples, 0.01%)starknet_providers::jsonrpc::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::JsonRpcMethod>::serialize (1 samples, 0.01%)serde_json::ser::format_escaped_str (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)serde_core::ser::Serializer::collect_seq (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)alloc::fmt::format::format_inner (5 samples, 0.07%)core::fmt::write (5 samples, 0.07%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (5 samples, 0.07%)core::fmt::write (4 samples, 0.05%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (4 samples, 0.05%)core::fmt::write (4 samples, 0.05%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (4 samples, 0.05%)core::fmt::Formatter::pad_integral::write_prefix (1 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (6 samples, 0.08%)serde_json::ser::format_escaped_str (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)serde_core::ser::Serializer::collect_seq (13 samples, 0.17%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (13 samples, 0.17%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (11 samples, 0.15%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (11 samples, 0.15%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (9 samples, 0.12%)serde_core::ser::Serializer::collect_seq (3 samples, 0.04%)<deduplicated_symbol> (3 samples, 0.04%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (3 samples, 0.04%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (3 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (3 samples, 0.04%)core::fmt::write (3 samples, 0.04%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (3 samples, 0.04%)core::fmt::write (2 samples, 0.03%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (20 samples, 0.27%)serde_json::de::from_str (6 samples, 0.08%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (6 samples, 0.08%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (6 samples, 0.08%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (6 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (22 samples, 0.30%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (22 samples, 0.30%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (1 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::de::DeserializeAs<starknet_types_core::felt::Felt>>::deserialize_as (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)_xzm_free (12 samples, 0.16%)mach_absolute_time (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (3 samples, 0.04%)_platform_memset (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.04%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (7 samples, 0.09%)futures_channel::mpsc::channel (2 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.03%)_xzm_xzone_malloc_from_empty_freelist_chunk (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.07%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)xzm_malloc_zone_size (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (14 samples, 0.19%)tokio_postgres::client::InnerClient::with_buf (7 samples, 0.09%)postgres_protocol::message::frontend::write_body (6 samples, 0.08%)_platform_memmove (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (23 samples, 0.31%)alloc::sync::Arc<T,A>::drop_slow (22 samples, 0.30%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (18 samples, 0.24%)_xzm_free (2 samples, 0.03%)mach_absolute_time (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)_xzm_malloc_large_huge (2 samples, 0.03%)xzm_segment_group_alloc_chunk (2 samples, 0.03%)_xzm_segment_group_find_and_allocate_chunk (2 samples, 0.03%)_xzm_segment_group_span_mark_smaller (2 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.03%)hashbrown::map::HashMap<K,V,S,A>::insert (8 samples, 0.11%)hashbrown::raw::RawTable<T,A>::reserve_rehash (4 samples, 0.05%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)tokio_postgres::client::Client::execute::_{{closure}} (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)tokio_postgres::query::encode_bind (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (3 samples, 0.04%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (1 samples, 0.01%)tokio_postgres::row::Row::get (1 samples, 0.01%)_free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (4 samples, 0.05%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (5 samples, 0.07%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.04%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (15 samples, 0.20%)futures_channel::mpsc::channel (7 samples, 0.09%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)DYLD-STUB$$memcpy (2 samples, 0.03%)bytes::bytes_mut::BytesMut::freeze (4 samples, 0.05%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (28 samples, 0.38%)tokio_postgres::client::InnerClient::with_buf (9 samples, 0.12%)postgres_protocol::message::frontend::write_body (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_free (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (39 samples, 0.52%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (38 samples, 0.51%)_xzm_free (5 samples, 0.07%)mach_absolute_time (4 samples, 0.05%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_chunk_batch_list_push (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::query::execute<&dyn postgres_types::ToSql,core::iter::adapters::map::Map<core::slice::iter::Iter<&dyn postgres_types::ToSql+core::marker::Sync>,tokio_postgres::slice_iter::{{closure}}>>::{{closure}}> (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (7 samples, 0.09%)_platform_memmove (1 samples, 0.01%)<i64 as postgres_types::ToSql>::to_sql_checked (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (3 samples, 0.04%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (9 samples, 0.12%)postgres_types::ToSql::encode_format (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (34 samples, 0.46%)tokio_postgres::query::encode_bind (29 samples, 0.39%)postgres_types::__to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (3 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)bytes::bytes_mut::shared_v_clone (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (4 samples, 0.05%)core::str::converts::from_utf8 (4 samples, 0.05%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<deduplicated_symbol> (3 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (11 samples, 0.15%)futures_channel::mpsc::channel (6 samples, 0.08%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (6 samples, 0.08%)futures_channel::mpsc::Receiver<T>::next_message (5 samples, 0.07%)_xzm_chunk_list_slot_push (3 samples, 0.04%)_xzm_chunk_list_push (2 samples, 0.03%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)tokio_postgres::query::start::_{{closure}} (39 samples, 0.52%)tokio_postgres::client::Responses::poll_next (21 samples, 0.28%)postgres_protocol::message::backend::Message::parse (7 samples, 0.09%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)_free (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)default_zone_realloc (2 samples, 0.03%)xzm_malloc_zone_realloc (1 samples, 0.01%)_malloc_zone_realloc (8 samples, 0.11%)xzm_realloc (4 samples, 0.05%)<alloc::string::String as core::fmt::Write>::write_str (9 samples, 0.12%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (9 samples, 0.12%)alloc::raw_vec::finish_grow (9 samples, 0.12%)_realloc (9 samples, 0.12%)default_zone_realloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)alloc::fmt::format::format_inner (17 samples, 0.23%)core::fmt::write (14 samples, 0.19%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (13 samples, 0.17%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.05%)malloc (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)_free (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (8 samples, 0.11%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (8 samples, 0.11%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.07%)_xzm_free (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (4 samples, 0.05%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (5 samples, 0.07%)tokio::runtime::task::waker::wake_by_val (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (16 samples, 0.21%)futures_channel::mpsc::channel (6 samples, 0.08%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)_free (1 samples, 0.01%)_xzm_chunk_list_slot_push (1 samples, 0.01%)_xzm_free (4 samples, 0.05%)_platform_memset (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (9 samples, 0.12%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (10 samples, 0.13%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (1 samples, 0.01%)tokio::runtime::task::waker::clone_waker (1 samples, 0.01%)_xzm_free (6 samples, 0.08%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (4 samples, 0.05%)tokio_postgres::client::Responses::poll_next (34 samples, 0.46%)postgres_protocol::message::backend::Message::parse (14 samples, 0.19%)std::io::Read::read_exact (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (10 samples, 0.13%)bytes::bytes_mut::BytesMut::reserve_inner (5 samples, 0.07%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_realloc (4 samples, 0.05%)_malloc_zone_realloc (4 samples, 0.05%)xzm_realloc (4 samples, 0.05%)_xzm_xzone_malloc_freelist_outlined (3 samples, 0.04%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::slice::memchr::memchr_aligned (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)tokio_postgres::prepare::encode (25 samples, 0.34%)tokio_postgres::client::InnerClient::with_buf (22 samples, 0.30%)postgres_protocol::message::frontend::write_body (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (10 samples, 0.13%)postgres_types::Type::from_oid (1 samples, 0.01%)postgres_types::type_gen::Inner::from_oid (1 samples, 0.01%)tokio_postgres::client::Client::execute::_{{closure}} (258 samples, 3.46%)tok..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (125 samples, 1.68%)tokio_postgres::statement::Statement::new (2 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (262 samples, 3.51%)tok..tokio_postgres::query::start::_{{closure}} (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Client::query_opt<str>::{{closure}}> (1 samples, 0.01%)bytes::bytes_mut::shared_v_drop (1 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (2 samples, 0.03%)tokio_postgres::client::Responses::poll_next (11 samples, 0.15%)postgres_protocol::message::backend::Message::parse (11 samples, 0.15%)std::io::default_read_exact (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)_platform_memcmp (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (2 samples, 0.03%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (17 samples, 0.23%)tokio_postgres::row::Row::new (3 samples, 0.04%)<alloc::vec::Vec<T> as fallible_iterator::FromFallibleIterator<T>>::from_fallible_iter (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (4 samples, 0.05%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (6 samples, 0.08%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_empty_freelist_chunk (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (9 samples, 0.12%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (8 samples, 0.11%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (10 samples, 0.13%)mach_absolute_time (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (5 samples, 0.07%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (5 samples, 0.07%)alloc::sync::Arc<T,A>::drop_slow (4 samples, 0.05%)_xzm_free (3 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (3 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)<alloc::vec::Vec<u8> as postgres_types::ToSql>::to_sql_checked (2 samples, 0.03%)DYLD-STUB$$memcpy (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.07%)_platform_memmove (2 samples, 0.03%)<i64 as postgres_types::ToSql>::to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)_free (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)__rustc::__rdl_alloc (1 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (6 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (29 samples, 0.39%)tokio_postgres::query::encode_bind (23 samples, 0.31%)postgres_types::__to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_chunk_list_pop (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (8 samples, 0.11%)futures_channel::mpsc::channel (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)__bzero (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (48 samples, 0.64%)tokio_postgres::query::start::_{{closure}} (16 samples, 0.21%)tokio_postgres::client::Responses::poll_next (6 samples, 0.08%)postgres_protocol::message::backend::Message::parse (4 samples, 0.05%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.07%)alloc::raw_vec::finish_grow (5 samples, 0.07%)_realloc (4 samples, 0.05%)xzm_malloc_zone_size (2 samples, 0.03%)alloc::fmt::format::format_inner (12 samples, 0.16%)core::fmt::write (11 samples, 0.15%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (9 samples, 0.12%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)core::fmt::Formatter::pad_integral::write_prefix (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.03%)default_zone_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$mach_absolute_time (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_realloc (7 samples, 0.09%)_malloc_zone_realloc (6 samples, 0.08%)xzm_realloc (5 samples, 0.07%)mach_absolute_time (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_empty_freelist_chunk (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (16 samples, 0.21%)alloc::raw_vec::finish_grow (15 samples, 0.20%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)bytes::bytes_mut::shared_v_drop (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (10 samples, 0.13%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.07%)_xzm_free (4 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (11 samples, 0.15%)_free (1 samples, 0.01%)core::str::converts::from_utf8 (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.03%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (7 samples, 0.09%)futures_channel::mpsc::channel (3 samples, 0.04%)malloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.07%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)_platform_memset (2 samples, 0.03%)__rustc::__rust_dealloc (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (17 samples, 0.23%)postgres_protocol::message::backend::Message::parse (9 samples, 0.12%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.04%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)xzm_malloc_zone_realloc (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)_malloc_zone_realloc (5 samples, 0.07%)xzm_realloc (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (11 samples, 0.15%)bytes::bytes_mut::BytesMut::reserve_inner (11 samples, 0.15%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (10 samples, 0.13%)alloc::raw_vec::finish_grow (9 samples, 0.12%)_realloc (7 samples, 0.09%)xzm_malloc_zone_size (2 samples, 0.03%)DYLD-STUB$$malloc (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)tokio_postgres::prepare::encode (20 samples, 0.27%)tokio_postgres::client::InnerClient::with_buf (20 samples, 0.27%)core::slice::memchr::memchr_aligned (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (13 samples, 0.17%)postgres_types::Type::from_oid (3 samples, 0.04%)postgres_types::type_gen::Inner::from_oid (3 samples, 0.04%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (198 samples, 2.66%)to..tokio_postgres::client::Client::query_opt::_{{closure}} (195 samples, 2.62%)to..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (107 samples, 1.44%)tokio_postgres::statement::Statement::new (3 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)torii::etl::decoder::DecoderId::new (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (5 samples, 0.07%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (1 samples, 0.01%)torii_common::felt_to_blob (9 samples, 0.12%)starknet_types_core::felt::Felt::to_bytes_be (1 samples, 0.01%)torii_common::metadata::MetadataFetcher::fetch_string::_{{closure}} (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::call::_{{closure}} (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (1 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (1 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (1 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.01%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)torii_common::u256_to_blob (2 samples, 0.03%)__rustc::__rdl_alloc (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)core::hash::BuildHasher::hash_one (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (3 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.04%)mach_absolute_time (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (6 samples, 0.08%)core::hash::BuildHasher::hash_one (5 samples, 0.07%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.04%)core::hash::BuildHasher::hash_one (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.04%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (5 samples, 0.07%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.01%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_smaller (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<alloc::vec::Vec<u8> as postgres_types::FromSql>::from_sql (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::row::Row::get (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (3 samples, 0.04%)_xzm_free (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (5 samples, 0.07%)tokio_postgres::query::encode_bind (4 samples, 0.05%)core::ptr::drop_in_place<core::iter::adapters::enumerate::Enumerate<alloc::vec::into_iter::IntoIter<(&dyn postgres_types::ToSql,postgres_types::Type)>>> (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)core::str::converts::from_utf8 (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (2 samples, 0.03%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (5 samples, 0.07%)tokio_postgres::client::Responses::poll_next (3 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::fmt::format::format_inner (2 samples, 0.03%)core::fmt::write (1 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (7 samples, 0.09%)postgres_protocol::message::backend::Message::parse (3 samples, 0.04%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::prepare::encode (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (37 samples, 0.50%)tokio_postgres::client::Client::execute::_{{closure}} (37 samples, 0.50%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (17 samples, 0.23%)tokio_postgres::prepare::get_type::_{{closure}} (2 samples, 0.03%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.03%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (5 samples, 0.07%)tokio_postgres::query::encode_bind (4 samples, 0.05%)_xzm_free (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (8 samples, 0.11%)tokio_postgres::query::start::_{{closure}} (3 samples, 0.04%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_chunk_list_pop (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (22 samples, 0.30%)tokio_postgres::client::Client::query_opt::_{{closure}} (22 samples, 0.30%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (10 samples, 0.13%)tokio_postgres::prepare::encode (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (90 samples, 1.21%)torii_common::felt_to_blob (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)__rustc::__rust_dealloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.05%)tokio_postgres::query::encode_bind (3 samples, 0.04%)core::iter::traits::iterator::Iterator::unzip (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (2 samples, 0.03%)futures_channel::mpsc::channel (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (9 samples, 0.12%)tokio_postgres::query::start::_{{closure}} (3 samples, 0.04%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)__rustc::__rdl_dealloc (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.03%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)core::str::converts::from_utf8 (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_empty_freelist_chunk (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (3 samples, 0.04%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (22 samples, 0.30%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (12 samples, 0.16%)tokio_postgres::prepare::encode (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)tokio_postgres::row::Row::get (1 samples, 0.01%)<alloc::vec::Vec<u8> as postgres_types::FromSql>::from_sql (1 samples, 0.01%)malloc (1 samples, 0.01%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (696 samples, 9.33%)<torii_erc20:..torii_erc20::storage::Erc20Storage::pg_get_balances_batch::_{{closure}} (26 samples, 0.35%)torii_common::felt_to_blob (1 samples, 0.01%)starknet_types_core::felt::Felt::to_bytes_be (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (3 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (1 samples, 0.01%)core::str::iter::SplitInternal<P>::next_back (1 samples, 0.01%)_platform_memcmp (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (1 samples, 0.01%)tokio_postgres::query::encode (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (6 samples, 0.08%)tokio_postgres::client::Client::query_raw::_{{closure}} (5 samples, 0.07%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (4 samples, 0.05%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)tokio_postgres::query::encode (4 samples, 0.05%)core::iter::traits::iterator::Iterator::unzip (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (1 samples, 0.01%)alloc::fmt::format::format_inner (2 samples, 0.03%)core::fmt::write (1 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (3 samples, 0.04%)_xzm_free (2 samples, 0.03%)mach_absolute_time (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.04%)futures_channel::mpsc::channel (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)tokio_postgres::prepare::encode (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (26 samples, 0.35%)tokio_postgres::client::Client::execute::_{{closure}} (26 samples, 0.35%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (16 samples, 0.21%)tokio_postgres::statement::Statement::new (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (749 samples, 10.05%)<torii::etl::si..<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (39 samples, 0.52%)torii::etl::decoder::DecoderId::new (4 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)DYLD-STUB$$free (1 samples, 0.01%)_free (3 samples, 0.04%)_xzm_free (2 samples, 0.03%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)_free (1 samples, 0.01%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (5 samples, 0.07%)_xzm_free (4 samples, 0.05%)_platform_memset (3 samples, 0.04%)free (1 samples, 0.01%)torii::run::_{{closure}}::_{{closure}} (2,219 samples, 29.76%)torii::run::_{{closure}}::_{{closure}}hashbrown::map::HashMap<K,V,S,A>::insert (4 samples, 0.05%)core::hash::BuildHasher::hash_one (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)_free (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (12 samples, 0.16%)_xzm_free (5 samples, 0.07%)_platform_memset (1 samples, 0.01%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (26 samples, 0.35%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (2 samples, 0.03%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)_free (1 samples, 0.01%)_platform_memmove (6 samples, 0.08%)_xzm_free (1 samples, 0.01%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (14 samples, 0.19%)bytes::bytes_mut::shared_v_drop (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (13 samples, 0.17%)bytes::bytes_mut::BytesMut::split_to (4 samples, 0.05%)tokio::io::poll_evented::PollEvented<E>::poll_read (2 samples, 0.03%)<tokio::net::tcp::stream::TcpStream as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.03%)<tokio_postgres::socket::Socket as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.03%)DYLD-STUB$$__recvfrom (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (955 samples, 12.81%)<&std::net::tcp::Tc..__recvfrom (949 samples, 12.73%)__recvfrom__recvfrom (204 samples, 2.74%)__..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,163 samples, 15.60%)<&mio::net::tcp::stream:..recv (1 samples, 0.01%)_tlv_get_addr (1 samples, 0.01%)tokio::runtime::io::registration::Registration::poll_ready (17 samples, 0.23%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (7 samples, 0.09%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (1,238 samples, 16.60%)<tokio_util::codec::framed..tokio_util::util::poll_buf::poll_read_buf (1,205 samples, 16.16%)tokio_util::util::poll_bu..tokio::io::poll_evented::PollEvented<E>::poll_read (1,194 samples, 16.01%)tokio::io::poll_evented::..tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.01%)<tokio_postgres::socket::Socket as tokio::io::async_write::AsyncWrite>::poll_write (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Write>::write (713 samples, 9.56%)<&std::net::tc..__sendto (711 samples, 9.54%)__sendto<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (856 samples, 11.48%)<&mio::net::tcp::..__sendto (143 samples, 1.92%)_..<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (869 samples, 11.66%)<tokio_util::code..tokio::io::poll_evented::PollEvented<E>::poll_write (864 samples, 11.59%)tokio::io::poll_e..tokio::runtime::io::registration::Registration::poll_ready (2 samples, 0.03%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (6 samples, 0.08%)DYLD-STUB$$free (1 samples, 0.01%)DYLD-STUB$$memcpy (3 samples, 0.04%)__bzero (1 samples, 0.01%)_free (3 samples, 0.04%)_platform_memmove (11 samples, 0.15%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)__bzero (6 samples, 0.08%)_xzm_free (20 samples, 0.27%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (6 samples, 0.08%)DYLD-STUB$$free (1 samples, 0.01%)_free (4 samples, 0.05%)_platform_memset (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)__rustc::__rdl_dealloc (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (9 samples, 0.12%)__bzero (3 samples, 0.04%)free (3 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (19 samples, 0.25%)xzm_malloc_zone_try_free_default (1 samples, 0.01%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (30 samples, 0.40%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.03%)<deduplicated_symbol> (5 samples, 0.07%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_chunk_list_pop (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (6 samples, 0.08%)_xzm_xzone_malloc_from_empty_freelist_chunk (4 samples, 0.05%)_xzm_xzone_malloc_freelist_outlined (9 samples, 0.12%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_tiny (12 samples, 0.16%)_xzm_xzone_malloc_tiny_or_early (2 samples, 0.03%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.03%)malloc (2 samples, 0.03%)_tlv_get_addr (1 samples, 0.01%)tokio::runtime::context::with_scheduler (6 samples, 0.08%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (7 samples, 0.09%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)tokio::runtime::task::raw::schedule (2 samples, 0.03%)futures_channel::mpsc::Sender<T>::start_send (49 samples, 0.66%)tokio::runtime::task::waker::wake_by_val (13 samples, 0.17%)tokio::runtime::task::state::State::transition_to_notified_by_val (3 samples, 0.04%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (2,329 samples, 31.24%)<tokio_postgres::connection::Connection<S,T> as co..futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.03%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)futures_channel::mpsc::BoundedSenderInner<T>::poll_unparked (1 samples, 0.01%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (2,339 samples, 31.37%)torii_erc20::storage::Erc20Storage::new::_{{closure..futures_channel::mpsc::Sender<T>::start_send (1 samples, 0.01%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (49 samples, 0.66%)__recvfrom (48 samples, 0.64%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (54 samples, 0.72%)__recvfrom (4 samples, 0.05%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (58 samples, 0.78%)tokio_util::util::poll_buf::poll_read_buf (56 samples, 0.75%)tokio::io::poll_evented::PollEvented<E>::poll_read (56 samples, 0.75%)tokio::runtime::io::registration::Registration::poll_ready (1 samples, 0.01%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (35 samples, 0.47%)__sendto (35 samples, 0.47%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (43 samples, 0.58%)tokio::io::poll_evented::PollEvented<E>::poll_write (41 samples, 0.55%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (41 samples, 0.55%)__sendto (6 samples, 0.08%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<deduplicated_symbol> (4,695 samples, 62.97%)<deduplicated_symbol>torii_erc721::storage::Erc721Storage::new::_{{closure}}::_{{closure}} (107 samples, 1.44%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (107 samples, 1.44%)futures_channel::mpsc::Sender<T>::start_send (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (1 samples, 0.01%)hyper::body::incoming::Sender::poll_ready (1 samples, 0.01%)atomic_waker::AtomicWaker::register (1 samples, 0.01%)DYLD-STUB$$malloc (2 samples, 0.03%)hyper::body::incoming::Sender::try_send_data (4 samples, 0.05%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (4 samples, 0.05%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)SSLGetBufferedReadSize (1 samples, 0.01%)SSLRecordFreeInternal (1 samples, 0.01%)_free (1 samples, 0.01%)CCSymmAEADSetIV (1 samples, 0.01%)_platform_memmove (5 samples, 0.07%)_xzm_xzone_malloc_small_freelist (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (135 samples, 1.81%)<..__recvfrom (135 samples, 1.81%)_..security_framework::secure_transport::read_func (179 samples, 2.40%)se..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (179 samples, 2.40%)<h..tokio::io::poll_evented::PollEvented<E>::poll_read (179 samples, 2.40%)to..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (179 samples, 2.40%)<&..__recvfrom (44 samples, 0.59%)DYLD-STUB$$ccgcm_init_with_iv (1 samples, 0.01%)cc_cmp_safe_internal (1 samples, 0.01%)timingsafe_enable_if_supported (1 samples, 0.01%)ccgcm_finalize (2 samples, 0.03%)ccmode_gcm_finalize (2 samples, 0.03%)ccmode_gcm_aad_finalize (1 samples, 0.01%)ccgcm_inc_iv (4 samples, 0.05%)timingsafe_restore_if_supported (3 samples, 0.04%)Decrypt_Main_Loop (5 samples, 0.07%)ccaes_vng_gcm_decrypt (31 samples, 0.42%)Decrypt_Main_Loop (31 samples, 0.42%)SSLDecryptRecord (44 samples, 0.59%)CCSymmAEADDecrypt (44 samples, 0.59%)ccgcm_update (38 samples, 0.51%)timingsafe_enable_if_supported (2 samples, 0.03%)SSLEncodeUInt64 (1 samples, 0.01%)_platform_memmove (21 samples, 0.28%)ccgcm_gmac (2 samples, 0.03%)timingsafe_enable_if_supported (1 samples, 0.01%)ccmode_gcm_init (2 samples, 0.03%)gcm_init (2 samples, 0.03%)timingsafe_enable_if_supported (1 samples, 0.01%)ccgcm_init_with_iv (4 samples, 0.05%)timingsafe_restore_if_supported (1 samples, 0.01%)SSLRecordReadInternal (261 samples, 3.50%)SSL..tls_record_decrypt (74 samples, 0.99%)timingsafe_enable_if_supported (1 samples, 0.01%)SSLRead (270 samples, 3.62%)SSLR.._platform_memmove (6 samples, 0.08%)SSLRecordReadInternal (1 samples, 0.01%)<deduplicated_symbol> (273 samples, 3.66%)<ded.._platform_memmove (1 samples, 0.01%)SSLGetConnection (1 samples, 0.01%)__bzero (15 samples, 0.20%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (294 samples, 3.94%)<tok.._platform_memset (3 samples, 0.04%)__bzero (1 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (297 samples, 3.98%)<hyp.._platform_memset (1 samples, 0.01%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Read>::poll_read (1 samples, 0.01%)_xzm_chunk_list_pop (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.05%)_xzm_xzone_find_and_malloc_from_freelist_chunk (3 samples, 0.04%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_alloc_segment (1 samples, 0.01%)mach_vm_map (1 samples, 0.01%)_kernelrpc_mach_vm_map_trap (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (322 samples, 4.32%)hyper..hyper::proto::h1::decode::Decoder::decode (321 samples, 4.31%)hyper..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (320 samples, 4.29%)<hype..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (317 samples, 4.25%)hyper..bytes::bytes_mut::BytesMut::reserve_inner (19 samples, 0.25%)_xzm_xzone_malloc_small_freelist (15 samples, 0.20%)http::status::StatusCode::canonical_reason (1 samples, 0.01%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (2 samples, 0.03%)hyper::headers::content_length_parse_all (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (4 samples, 0.05%)hyper::proto::h1::io::Buffered<T,B>::parse (4 samples, 0.05%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (2 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (2 samples, 0.03%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)SSLRead (2 samples, 0.03%)SSLRecordReadInternal (2 samples, 0.03%)security_framework::secure_transport::read_func (2 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_read (2 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.03%)__recvfrom (2 samples, 0.03%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_keep_alive (1 samples, 0.01%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1 samples, 0.01%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)SSLRead (1 samples, 0.01%)tls_handshake_continue (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (335 samples, 4.49%)<futu..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (335 samples, 4.49%)<hype..hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (335 samples, 4.49%)hyper..hyper::proto::h1::io::Buffered<T,B>::poll_flush (2 samples, 0.03%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (2 samples, 0.03%)tokio_native_tls::TlsStream<S>::with_context (2 samples, 0.03%)SSLWrite (2 samples, 0.03%)SSLRecordServiceWriteQueueInternal (2 samples, 0.03%)security_framework::secure_transport::write_func (2 samples, 0.03%)tokio::io::poll_evented::PollEvented<E>::poll_write (2 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (2 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.03%)__sendto (2 samples, 0.03%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (336 samples, 4.51%)<futu..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)core::ptr::drop_in_place<hyper_util::client::legacy::pool::Pooled<hyper_util::client::legacy::client::PoolClient<reqwest::async_impl::body::Body>,(http::uri::scheme::Scheme,http::uri::authority::Authority)>> (1 samples, 0.01%)<hyper_util::client::legacy::pool::Pooled<T,K> as core::ops::drop::Drop>::drop (1 samples, 0.01%)hyper_util::client::legacy::pool::PoolInner<T,K>::put (1 samples, 0.01%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio::runtime::task::core::TaskIdGuard::enter (1 samples, 0.01%)tokio::runtime::task::state::State::transition_to_idle (8 samples, 0.11%)tokio::runtime::task::state::State::transition_to_running (4 samples, 0.05%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task (5,066 samples, 67.95%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::task::harness::Harness<T,S>::poll (5,054 samples, 67.78%)tokio::runtime::task::harness::Harness<T,S>::polltorii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (2 samples, 0.03%)all (7,456 samples, 100%)thread_start (7,420 samples, 99.52%)thread_start_pthread_start (7,420 samples, 99.52%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (7,420 samples, 99.52%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (7,420 samples, 99.52%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (7,420 samples, 99.52%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (7,420 samples, 99.52%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (7,420 samples, 99.52%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (7,420 samples, 99.52%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (7,420 samples, 99.52%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (7,416 samples, 99.46%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (7,416 samples, 99.46%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (7,416 samples, 99.46%)tokio::runtime::context::scoped::Scoped<T>::settokio::runtime::scheduler::multi_thread::worker::Context::run (7,412 samples, 99.41%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (5 samples, 0.07%) \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-inflight-2.svg b/bins/torii-tokens/flamegraph-inflight-2.svg new file mode 100644 index 0000000..1035822 --- /dev/null +++ b/bins/torii-tokens/flamegraph-inflight-2.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_0::operator()() const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, lsl::Vector<dyld4::Loader const*>&, lsl::Vector<dyld4::Loader const*>&) const (1 samples, 0.01%)dyld4::PrebuiltLoader::dependent(dyld4::RuntimeState const&, unsigned int, mach_o::LinkedDylibAttributes*) const (1 samples, 0.01%)dyld4::APIs::runAllInitializersForMain() (2 samples, 0.03%)dyld4::PrebuiltLoader::runInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.01%)mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)mach_o::Header::forEachLoadCommand(void (load_command const*, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in mach_o::Header::forEachSection(void (mach_o::Header::SectionInfo const&, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const (1 samples, 0.01%)invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const (1 samples, 0.01%)libSystem_initializer (1 samples, 0.01%)_libxpc_initializer (1 samples, 0.01%)_xpc_collect_images (1 samples, 0.01%)xpc_bundle_copy_services (1 samples, 0.01%)_xpc_bundle_resolve (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)___xpc_bundle_resolve_block_invoke (1 samples, 0.01%)_xpc_bundle_resolve_sync (1 samples, 0.01%)__getattrlist (1 samples, 0.01%)dyld4::JustInTimeLoader::applyFixups(Diagnostics&, dyld4::RuntimeState&, dyld4::DyldCacheDataConstLazyScopedWriter&, bool, lsl::Vector<std::__1::pair<dyld4::Loader const*, char const*>>*) const (1 samples, 0.01%)dyld4::Loader::applyFixupsGeneric(Diagnostics&, dyld4::RuntimeState&, unsigned long long, dyld3::Array<void const*> const&, dyld3::Array<void const*> const&, bool, dyld3::Array<dyld4::Loader::MissingFlatLazySymbol> const&) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachRebaseLocation_Opcodes(Diagnostics&, void (unsigned long long, bool&) block_pointer) const (1 samples, 0.01%)dyld3::MachOAnalyzer::forEachRebase_Opcodes(Diagnostics&, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, void (char const*, dyld3::MachOLoaded::LinkEditInfo const&, mach_o::Header::SegmentInfo const*, bool, unsigned int, unsigned char, unsigned long long, dyld3::MachOAnalyzer::Rebase, bool&) block_pointer) const (1 samples, 0.01%)invocation function for block in dyld4::Loader::applyFixupsGeneric(Diagnostics&, dyld4::RuntimeState&, unsigned long long, dyld3::Array<void const*> const&, dyld3::Array<void const*> const&, bool, dyld3::Array<dyld4::Loader::MissingFlatLazySymbol> const&) const (1 samples, 0.01%)dyld4::JustInTimeLoader::makeLaunchLoader(Diagnostics&, dyld4::RuntimeState&) (1 samples, 0.01%)dyld4::Loader::getOnDiskBinarySliceOffset(dyld4::RuntimeState&, dyld3::MachOFile const*, char const*) (1 samples, 0.01%)dyld4::SyscallDelegate::withReadOnlyMappedFile(Diagnostics&, char const*, bool, void (void const*, unsigned long, bool, dyld4::FileID const&, char const*, int) block_pointer) const (1 samples, 0.01%)dyld4::SyscallDelegate::mapFileReadOnly(Diagnostics&, char const*, int*, unsigned long*, dyld4::FileID*, bool*, char*) const (1 samples, 0.01%)dyld3::open(char const*, int, int) (1 samples, 0.01%)open_with_subsystem (1 samples, 0.01%)__open (1 samples, 0.01%)dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (5 samples, 0.07%)dyld4::RuntimeState::notifyDebuggerLoad(std::__1::span<dyld4::Loader const*, 18446744073709551615ul> const&) (1 samples, 0.01%)dyld4::ExternallyViewableState::addImages(lsl::Allocator&, lsl::Allocator&, std::__1::span<dyld4::ExternallyViewableState::ImageInfo, 18446744073709551615ul> const&) (1 samples, 0.01%)dyld4::ExternallyViewableState::generateAtlas(lsl::Allocator&) (1 samples, 0.01%)AAREncoder::encode(ByteStream&) const (1 samples, 0.01%)cksum(std::__1::span<std::byte, 18446744073709551615ul>) (1 samples, 0.01%)clap_builder::derive::Parser::parse (1 samples, 0.01%)<torii_tokens::config::Config as clap_builder::derive::Args>::augment_args (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)tokio::runtime::park::Inner::park (2 samples, 0.03%)parking_lot::condvar::Condvar::wait_until_internal (2 samples, 0.03%)__psynch_cvwait (2 samples, 0.03%)<sqlx_postgres::row::PgRow as sqlx_core::row::Row>::try_get_raw (1 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.03%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<T as futures_util::fns::FnMut1<A>>::call_mut (2 samples, 0.03%)sqlx_postgres::any::_<impl core::convert::TryFrom<&sqlx_postgres::row::PgRow> for sqlx_core::any::row::AnyRow>::try_from (2 samples, 0.03%)sqlx_postgres::types::str::_<impl sqlx_core::decode::Decode<sqlx_postgres::database::Postgres> for alloc::string::String>::decode (1 samples, 0.01%)hyper_util::client::legacy::client::Builder::build (1 samples, 0.01%)hyper_util::client::legacy::pool::Pool<T,K>::new (1 samples, 0.01%)<reqwest::async_impl::client::Client as core::default::Default>::default (2 samples, 0.03%)reqwest::async_impl::client::ClientBuilder::build (2 samples, 0.03%)hyper_util::client::proxy::matcher::Matcher::from_system (1 samples, 0.01%)hyper_util::client::proxy::matcher::mac::with_system (1 samples, 0.01%)system_configuration::dynamic_store::SCDynamicStoreBuilder<T>::build (1 samples, 0.01%)system_configuration::dynamic_store::SCDynamicStore::create (1 samples, 0.01%)SCDynamicStoreCreateWithOptions (1 samples, 0.01%)__SCDynamicStoreCreateInternal (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)____SCDynamicStoreInitialize_block_invoke (1 samples, 0.01%)os_state_add_handler (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)_os_trace_init_slow (1 samples, 0.01%)__sysctl (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)core::ptr::drop_in_place<sqlx_core::any::row::AnyRow> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)tokio_postgres::client::Client::batch_execute::_{{closure}} (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::authentication::sasl::ScramSha256> (1 samples, 0.01%)postgres_protocol::authentication::sasl::hi (3 samples, 0.04%)sha2::sha256::compress256 (3 samples, 0.04%)tokio_postgres::connect::_{{closure}} (10 samples, 0.13%)tokio_postgres::connect::connect_once::_{{closure}} (10 samples, 0.13%)tokio_postgres::connect_raw::connect_raw::_{{closure}} (10 samples, 0.13%)postgres_protocol::authentication::sasl::ScramSha256::update (9 samples, 0.12%)sha2::sha256::compress256 (6 samples, 0.08%)_platform_memset (1 samples, 0.01%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.03%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sha2::sha256::compress256 (1 samples, 0.01%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.01%)torii::etl::engine_db::EngineDb::new::_{{closure}} (5 samples, 0.07%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (3 samples, 0.04%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (3 samples, 0.04%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (3 samples, 0.04%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (3 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.03%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.03%)sha2::sha256::compress256 (2 samples, 0.03%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::build_routes (1 samples, 0.01%)axum::routing::Router<S>::new (1 samples, 0.01%)core::ops::function::FnOnce::call_once (1 samples, 0.01%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (1 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (1 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (1 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (1 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (1 samples, 0.01%)sha2::sha256::compress256 (1 samples, 0.01%)torii::run::_{{closure}} (3 samples, 0.04%)torii::etl::engine_db::EngineDb::new::_{{closure}} (2 samples, 0.03%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (1 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (1 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (1 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (1 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (1 samples, 0.01%)sha2::sha256::compress256 (1 samples, 0.01%)torii_erc20::sink::Erc20Sink::with_grpc_service (1 samples, 0.01%)start (37 samples, 0.49%)main (32 samples, 0.43%)std::rt::lang_start_internal (32 samples, 0.43%)std::rt::lang_start::_{{closure}} (32 samples, 0.43%)std::sys::backtrace::__rust_begin_short_backtrace (32 samples, 0.43%)torii_tokens::main (32 samples, 0.43%)tokio::runtime::park::CachedParkThread::block_on (32 samples, 0.43%)torii_tokens::run_indexer::_{{closure}} (29 samples, 0.39%)torii_erc721::proto::erc721_server::Erc721Server<T>::new (1 samples, 0.01%)_nw_parameters_create_legacy_tcp_socket (1 samples, 0.01%)0x196305ff0 (1 samples, 0.01%)0x195ff2268 (1 samples, 0.01%)0x196380860 (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)0x196052324 (1 samples, 0.01%)nw_context_copy_implicit_context (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__nw_context_copy_implicit_context_block_invoke (1 samples, 0.01%)-[NWConcrete_nw_context initWithIdentifier:] (1 samples, 0.01%)networkd_settings_get_int64_with_default (1 samples, 0.01%)networkd_settings_init (1 samples, 0.01%)networkd_settings_update_from_token(int) (1 samples, 0.01%)nw_path_libinfo_path_check (2 samples, 0.03%)nw_path_create_evaluator_for_endpoint (1 samples, 0.01%)nw_path_evaluator_evaluate(NWConcrete_nw_path_evaluator*, int*) (1 samples, 0.01%)nw_path_snapshot_path(NWConcrete_nw_path*) (1 samples, 0.01%)_nw_path_update_is_viableTm (1 samples, 0.01%)0x1960ad66c (1 samples, 0.01%)0x1960af258 (1 samples, 0.01%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (3 samples, 0.04%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (3 samples, 0.04%)getaddrinfo (3 samples, 0.04%)si_addrinfo (3 samples, 0.04%)search_addrinfo (1 samples, 0.01%)mdns_addrinfo (1 samples, 0.01%)_mdns_search_ex (1 samples, 0.01%)_mdns_query_start (1 samples, 0.01%)DNSServiceQueryRecordInternal (1 samples, 0.01%)setsockopt (1 samples, 0.01%)std::time::Instant::elapsed (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::idle::Idle::transition_worker_to_parked (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (1 samples, 0.01%)<std::time::Instant as core::ops::arith::Sub>::sub (2 samples, 0.03%)std::sys::pal::unix::time::Timespec::sub_timespec (2 samples, 0.03%)pow (2 samples, 0.03%)DYLD-STUB$$clock_gettime (1 samples, 0.01%)mach_absolute_time (51 samples, 0.68%)std::sys::pal::unix::time::Timespec::now (55 samples, 0.73%)clock_gettime (53 samples, 0.71%)clock_gettime_nsec_np (52 samples, 0.69%)mach_timebase_info (1 samples, 0.01%)DYLD-STUB$$clock_gettime (2 samples, 0.03%)DYLD-STUB$$mach_absolute_time (4 samples, 0.05%)DYLD-STUB$$mach_timebase_info (1 samples, 0.01%)mach_absolute_time (23 samples, 0.31%)std::time::Instant::elapsed (34 samples, 0.45%)std::sys::pal::unix::time::Timespec::now (33 samples, 0.44%)clock_gettime (31 samples, 0.41%)clock_gettime_nsec_np (31 samples, 0.41%)mach_timebase_info (2 samples, 0.03%)std::time::Instant::now (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::idle::Idle::transition_worker_to_parked (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (19 samples, 0.25%)__psynch_cvwait (2 samples, 0.03%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (13 samples, 0.17%)parking_lot::condvar::Condvar::wait_until_internal (13 samples, 0.17%)_pthread_cond_wait (10 samples, 0.13%)__psynch_cvwait (10 samples, 0.13%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (1 samples, 0.01%)tokio::runtime::io::driver::Driver::turn (1 samples, 0.01%)tokio::runtime::signal::Driver::process (1 samples, 0.01%)clock_gettime (1 samples, 0.01%)mio::poll::Poll::poll (1 samples, 0.01%)DYLD-STUB$$clock_gettime (3 samples, 0.04%)DYLD-STUB$$mach_absolute_time (4 samples, 0.05%)DYLD-STUB$$mach_timebase_info (1 samples, 0.01%)mach_absolute_time (110 samples, 1.46%)clock_gettime_nsec_np (129 samples, 1.72%)mach_timebase_info (5 samples, 0.07%)std::sys::pal::unix::time::Timespec::now (140 samples, 1.86%)s..clock_gettime (132 samples, 1.76%)mach_timebase_info (1 samples, 0.01%)std::time::Instant::duration_since (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::sub_timespec (1 samples, 0.01%)std::time::Instant::now (2 samples, 0.03%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (5 samples, 0.07%)kevent (12 samples, 0.16%)DYLD-STUB$$kevent (2 samples, 0.03%)mio::poll::Poll::poll (1,763 samples, 23.47%)mio::poll::Poll::pollkevent (1,739 samples, 23.15%)keventtokio::runtime::park::wake (1 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (1 samples, 0.01%)__psynch_cvsignal (1 samples, 0.01%)_tlv_get_addr (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (14 samples, 0.19%)tokio::runtime::context::with_scheduler (14 samples, 0.19%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (5 samples, 0.07%)tokio::runtime::task::raw::schedule (4 samples, 0.05%)tokio::runtime::io::driver::Driver::turn (1,901 samples, 25.31%)tokio::runtime::io::driver::Driver::turntokio::runtime::io::scheduled_io::ScheduledIo::wake (68 samples, 0.91%)tokio::runtime::task::waker::wake_by_val (34 samples, 0.45%)tokio::runtime::task::state::State::transition_to_notified_by_val (4 samples, 0.05%)tokio::runtime::io::scheduled_io::ScheduledIo::wake (1 samples, 0.01%)tokio::runtime::signal::Driver::process (3 samples, 0.04%)tokio::runtime::time::wheel::Wheel::next_expiration (3 samples, 0.04%)tokio::runtime::time::wheel::level::Level::next_expiration (3 samples, 0.04%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (16 samples, 0.21%)tokio::runtime::time::wheel::Wheel::poll (8 samples, 0.11%)tokio::runtime::time::wheel::Wheel::next_expiration (4 samples, 0.05%)tokio::runtime::time::wheel::level::Level::next_expiration (1 samples, 0.01%)tokio::runtime::time::wheel::Wheel::next_expiration (4 samples, 0.05%)tokio::runtime::time::wheel::level::Level::next_expiration (4 samples, 0.05%)tokio::runtime::scheduler::multi_thread::park::Parker::park (2,152 samples, 28.65%)tokio::runtime::scheduler::multi_thread::park:..tokio::runtime::time::Driver::park_internal (2,089 samples, 27.81%)tokio::runtime::time::Driver::park_internaltokio::runtime::time::wheel::Wheel::poll (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (1 samples, 0.01%)clock_gettime (1 samples, 0.01%)clock_gettime_nsec_np (1 samples, 0.01%)tokio::runtime::io::driver::Driver::turn (10 samples, 0.13%)mio::poll::Poll::poll (10 samples, 0.13%)kevent (9 samples, 0.12%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (14 samples, 0.19%)tokio::runtime::time::Driver::park_internal (13 samples, 0.17%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (2,208 samples, 29.40%)tokio::runtime::scheduler::multi_thread::worker..tokio::runtime::time::Driver::park_internal (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)mio::waker::Waker::wake (1 samples, 0.01%)kevent (1 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (4 samples, 0.05%)pthread_cond_signal (4 samples, 0.05%)__psynch_cvsignal (4 samples, 0.05%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (5 samples, 0.07%)_tlv_get_addr (1 samples, 0.01%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (1 samples, 0.01%)_pthread_mutex_firstfit_unlock_slow (1 samples, 0.01%)_pthread_mutex_firstfit_wake (1 samples, 0.01%)__psynch_mutexdrop (1 samples, 0.01%)<deduplicated_symbol> (9 samples, 0.12%)mio::waker::Waker::wake (9 samples, 0.12%)kevent (9 samples, 0.12%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (13 samples, 0.17%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (13 samples, 0.17%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (13 samples, 0.17%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (13 samples, 0.17%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (13 samples, 0.17%)futures_channel::mpsc::Receiver<T>::next_message (12 samples, 0.16%)tokio::runtime::task::waker::wake_by_val (11 samples, 0.15%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (11 samples, 0.15%)tokio::runtime::context::with_scheduler (11 samples, 0.15%)parking_lot::condvar::Condvar::notify_one_slow (2 samples, 0.03%)pthread_cond_signal (2 samples, 0.03%)__psynch_cvsignal (2 samples, 0.03%)_platform_memmove (7 samples, 0.09%)encoding_rs::Encoding::decode_without_bom_handling (2 samples, 0.03%)encoding_rs::utf_8::utf8_valid_up_to (2 samples, 0.03%)_platform_memmove (10 samples, 0.13%)reqwest::async_impl::response::Response::text::_{{closure}} (35 samples, 0.47%)http_body_util::collected::Collected<B>::to_bytes (13 samples, 0.17%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (13 samples, 0.17%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (13 samples, 0.17%)_xzm_free (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.04%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.03%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.13%)_xzm_xzone_malloc (3 samples, 0.04%)__rustc::__rdl_realloc (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.03%)xzm_chunk_mark_used (2 samples, 0.03%)_xzm_reclaim_mark_used (2 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.03%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.03%)_malloc_zone_realloc (9 samples, 0.12%)xzm_realloc (9 samples, 0.12%)_xzm_xzone_malloc_tiny (3 samples, 0.04%)_realloc (10 samples, 0.13%)xzm_malloc_zone_size (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (13 samples, 0.17%)alloc::raw_vec::finish_grow (13 samples, 0.17%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_empty_freelist_chunk (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (32 samples, 0.43%)alloc::raw_vec::finish_grow (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.03%)xzm_chunk_mark_used (2 samples, 0.03%)_xzm_reclaim_mark_used (2 samples, 0.03%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8 samples, 0.11%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (12 samples, 0.16%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (4 samples, 0.05%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (6 samples, 0.08%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)_xzm_xzone_malloc_tiny (4 samples, 0.05%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (19 samples, 0.25%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (14 samples, 0.19%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (66 samples, 0.88%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (70 samples, 0.93%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (74 samples, 0.99%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (74 samples, 0.99%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)_platform_memcmp (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (82 samples, 1.09%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (82 samples, 1.09%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (5 samples, 0.07%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.03%)__rustc::__rdl_alloc (1 samples, 0.01%)_platform_memmove (6 samples, 0.08%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.13%)malloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (17 samples, 0.23%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.07%)alloc::raw_vec::finish_grow (5 samples, 0.07%)_realloc (5 samples, 0.07%)_malloc_zone_realloc (5 samples, 0.07%)xzm_realloc (4 samples, 0.05%)_xzm_xzone_malloc_small_freelist (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.04%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (14 samples, 0.19%)_xzm_xzone_thread_cache_fill_and_malloc (4 samples, 0.05%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_free_freelist (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_realloc (5 samples, 0.07%)xzm_realloc (5 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (23 samples, 0.31%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.08%)alloc::raw_vec::finish_grow (6 samples, 0.08%)_realloc (6 samples, 0.08%)xzm_malloc_zone_size (1 samples, 0.01%)__rustc::__rdl_alloc (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (28 samples, 0.37%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (5 samples, 0.07%)_xzm_xzone_malloc (1 samples, 0.01%)DYLD-STUB$$memcmp (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (133 samples, 1.77%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (133 samples, 1.77%)<..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (51 samples, 0.68%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (51 samples, 0.68%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (51 samples, 0.68%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (3 samples, 0.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (134 samples, 1.78%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (134 samples, 1.78%)<..<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (134 samples, 1.78%)<..<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (134 samples, 1.78%)<..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (134 samples, 1.78%)<..alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)_xzm_free (4 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (17 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (17 samples, 0.23%)core::ptr::drop_in_place<serde_core::private::content::Content> (16 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (16 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (16 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (14 samples, 0.19%)core::ptr::drop_in_place<serde_core::private::content::Content> (9 samples, 0.12%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.03%)_realloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.07%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (3 samples, 0.04%)_platform_memmove (2 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (2 samples, 0.03%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (7 samples, 0.09%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.07%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.08%)alloc::raw_vec::finish_grow (6 samples, 0.08%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (8 samples, 0.11%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rdl_realloc (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)mach_absolute_time (1 samples, 0.01%)_malloc_zone_realloc (7 samples, 0.09%)xzm_realloc (7 samples, 0.09%)_xzm_xzone_malloc_tiny (3 samples, 0.04%)_realloc (9 samples, 0.12%)xzm_malloc_zone_size (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (20 samples, 0.27%)alloc::raw_vec::finish_grow (18 samples, 0.24%)_xzm_xzone_malloc (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (60 samples, 0.80%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.33%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (19 samples, 0.25%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (91 samples, 1.21%)serde_core::de::Deserializer::__deserialize_content_v1 (70 samples, 0.93%)serde_json::de::Deserializer<R>::end_seq (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (116 samples, 1.54%)serde_core::de::Deserializer::__deserialize_content_v1 (107 samples, 1.42%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (9 samples, 0.12%)_platform_memmove (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (319 samples, 4.25%)<star..serde_json::de::from_str (284 samples, 3.78%)serd..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (284 samples, 3.78%)<&mu..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (284 samples, 3.78%)<ser..<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (284 samples, 3.78%)<ser..serde_core::de::Deserializer::__deserialize_content_v1 (133 samples, 1.77%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (133 samples, 1.77%)<..serde_core::de::Deserializer::__deserialize_content_v1 (133 samples, 1.77%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (133 samples, 1.77%)<..serde_core::de::Deserializer::__deserialize_content_v1 (133 samples, 1.77%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (133 samples, 1.77%)<..serde_core::de::Deserializer::__deserialize_content_v1 (133 samples, 1.77%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (133 samples, 1.77%)<..serde_core::de::Deserializer::__deserialize_content_v1 (133 samples, 1.77%)s..<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (131 samples, 1.74%)serde_core::de::Deserializer::__deserialize_content_v1 (121 samples, 1.61%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)serde_json::read::parse_escape (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)<&mut A as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.03%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::Visitor>::visit_string (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8 samples, 0.11%)serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.01%)<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (3 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rdl_alloc (3 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (5 samples, 0.07%)_platform_memmove (9 samples, 0.12%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (33 samples, 0.44%)serde::private::de::content::content_clone (28 samples, 0.37%)serde::private::de::content::content_clone (23 samples, 0.31%)<alloc::string::String as core::clone::Clone>::clone (23 samples, 0.31%)_xzm_xzone_malloc (3 samples, 0.04%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.01%)<<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize::_::<impl serde_core::de::Deserialize for <starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize::Tagged>::deserialize::__FieldVisitor as serde_core::de::Visitor>::visit_str (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (29 samples, 0.39%)starknet_types_core::felt::Felt::from_hex (27 samples, 0.36%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (27 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (20 samples, 0.27%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (11 samples, 0.15%)_free (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (35 samples, 0.47%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (35 samples, 0.47%)_xzm_free (3 samples, 0.04%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (40 samples, 0.53%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (40 samples, 0.53%)_xzm_free (1 samples, 0.01%)<<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize::_::<impl serde_core::de::Deserialize for <starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize::Tagged>::deserialize::__FieldVisitor as serde_core::de::Visitor>::visit_str (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (75 samples, 1.00%)starknet_types_core::felt::Felt::from_hex (73 samples, 0.97%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (73 samples, 0.97%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (65 samples, 0.87%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (32 samples, 0.43%)_free (3 samples, 0.04%)_xzm_free (3 samples, 0.04%)__bzero (1 samples, 0.01%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (82 samples, 1.09%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (83 samples, 1.11%)_xzm_free (1 samples, 0.01%)_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.05%)_free (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (176 samples, 2.34%)s..<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (93 samples, 1.24%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (93 samples, 1.24%)serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (4 samples, 0.05%)_platform_memmove (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<deduplicated_symbol> (3 samples, 0.04%)DYLD-STUB$$memcpy (1 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.05%)_platform_memmove (7 samples, 0.09%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (47 samples, 0.63%)serde::private::de::content::content_clone (46 samples, 0.61%)serde::private::de::content::content_clone (43 samples, 0.57%)serde::private::de::content::content_clone (35 samples, 0.47%)serde::private::de::content::content_clone (19 samples, 0.25%)<alloc::string::String as core::clone::Clone>::clone (17 samples, 0.23%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.08%)starknet_types_core::felt::Felt::from_hex (6 samples, 0.08%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (6 samples, 0.08%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (6 samples, 0.08%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.05%)<deduplicated_symbol> (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (30 samples, 0.40%)starknet_types_core::felt::Felt::from_hex (29 samples, 0.39%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (29 samples, 0.39%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (26 samples, 0.35%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (13 samples, 0.17%)<deduplicated_symbol> (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (153 samples, 2.04%)<..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (124 samples, 1.65%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (70 samples, 0.93%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (159 samples, 2.12%)<..starknet_types_core::felt::Felt::from_hex (157 samples, 2.09%)s..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)_free (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_free (3 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (177 samples, 2.36%)<.._xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (183 samples, 2.44%)<s.._xzm_free (6 samples, 0.08%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (6 samples, 0.08%)_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (232 samples, 3.09%)<se..serde::private::de::content::MapDeserializer<E>::end (4 samples, 0.05%)_xzm_free (3 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (234 samples, 3.12%)<se..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (234 samples, 3.12%)<se.._xzm_xzone_malloc_tiny (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_enum (1 samples, 0.01%)<serde::private::de::content::EnumDeserializer<E> as serde_core::de::EnumAccess>::variant_seed (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.05%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (250 samples, 3.33%)<se..DYLD-STUB$$free (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (475 samples, 6.32%)<serde::..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (475 samples, 6.32%)<serde_c..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (475 samples, 6.32%)<serde::..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (299 samples, 3.98%)star..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (251 samples, 3.34%)<st.._xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (477 samples, 6.35%)<serde::..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)__bzero (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)_free (1 samples, 0.01%)_xzm_free (9 samples, 0.12%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)_free (7 samples, 0.09%)_xzm_free (9 samples, 0.12%)DYLD-STUB$$free (1 samples, 0.01%)_free (2 samples, 0.03%)_xzm_free (7 samples, 0.09%)_platform_memset (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)_free (4 samples, 0.05%)_xzm_free (14 samples, 0.19%)_platform_memset (2 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (75 samples, 1.00%)core::ptr::drop_in_place<serde_core::private::content::Content> (75 samples, 1.00%)core::ptr::drop_in_place<serde_core::private::content::Content> (75 samples, 1.00%)core::ptr::drop_in_place<serde_core::private::content::Content> (74 samples, 0.99%)core::ptr::drop_in_place<serde_core::private::content::Content> (62 samples, 0.83%)core::ptr::drop_in_place<serde_core::private::content::Content> (43 samples, 0.57%)core::ptr::drop_in_place<serde_core::private::content::Content> (27 samples, 0.36%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4 samples, 0.05%)_xzm_xzone_madvise_batch (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (4 samples, 0.05%)_xzm_free (4 samples, 0.05%)_platform_memset (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (26 samples, 0.35%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (44 samples, 0.59%)serde_core::de::Deserializer::__deserialize_content_v1 (40 samples, 0.53%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (40 samples, 0.53%)serde_core::de::Deserializer::__deserialize_content_v1 (29 samples, 0.39%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (58 samples, 0.77%)serde_core::de::Deserializer::__deserialize_content_v1 (52 samples, 0.69%)serde_json::value::de::MapDeserializer::new (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (932 samples, 12.41%)<starknet_providers..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (932 samples, 12.41%)starknet_providers:..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (613 samples, 8.16%)starknet_co..serde_core::de::Deserializer::__deserialize_content_v1 (61 samples, 0.81%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (61 samples, 0.81%)serde_core::de::Deserializer::__deserialize_content_v1 (61 samples, 0.81%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (61 samples, 0.81%)serde_core::de::Deserializer::__deserialize_content_v1 (60 samples, 0.80%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (60 samples, 0.80%)serde_core::de::Deserializer::__deserialize_content_v1 (59 samples, 0.79%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (1 samples, 0.01%)reqwest::async_impl::request::RequestBuilder::send (1 samples, 0.01%)reqwest::async_impl::client::Client::execute_request (1 samples, 0.01%)<reqwest::redirect::TowerRedirectPolicy as tower_http::follow_redirect::policy::Policy<reqwest::async_impl::body::Body,reqwest::error::Error>>::on_request (1 samples, 0.01%)url::ParseOptions::parse (1 samples, 0.01%)url::parser::Parser::parse_url (1 samples, 0.01%)url::parser::Parser::after_double_slash (1 samples, 0.01%)url::parser::Parser::parse_path (1 samples, 0.01%)_platform_memmove (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memmove (3 samples, 0.04%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}}::_{{closure}} (948 samples, 12.62%)<torii::etl::extrac..torii::etl::extractor::starknet_helpers::block_into_contexts (9 samples, 0.12%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_realloc (4 samples, 0.05%)_malloc_zone_realloc (4 samples, 0.05%)xzm_realloc (4 samples, 0.05%)xzm_segment_group_free_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_free (1 samples, 0.01%)_xzm_reclaim_mark_free (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)mach_vm_reclaim_try_enter (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (1 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (1 samples, 0.01%)tokio::net::tcp::stream::TcpStream::try_write (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (1 samples, 0.01%)__sendto (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (2 samples, 0.03%)__recvfrom (2 samples, 0.03%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (4 samples, 0.05%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (3 samples, 0.04%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (3 samples, 0.04%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (3 samples, 0.04%)tokio::runtime::io::registration::Registration::try_io (3 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (3 samples, 0.04%)__recvfrom (1 samples, 0.01%)tokio::runtime::task::core::TaskIdGuard::enter (2 samples, 0.03%)_tlv_get_addr (1 samples, 0.01%)<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop (1 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)core::hash::BuildHasher::hash_one (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (3 samples, 0.04%)tokio::sync::batch_semaphore::Semaphore::release (1 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)DYLD-STUB$$malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)xzm_malloc_zone_size (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)xzm_malloc_zone_size (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (6 samples, 0.08%)alloc::raw_vec::finish_grow (5 samples, 0.07%)_realloc (5 samples, 0.07%)xzm_realloc (1 samples, 0.01%)alloc::fmt::format::format_inner (16 samples, 0.21%)core::fmt::write (15 samples, 0.20%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (13 samples, 0.17%)core::fmt::write (10 samples, 0.13%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (10 samples, 0.13%)core::fmt::write (10 samples, 0.13%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (9 samples, 0.12%)core::fmt::Formatter::pad_integral (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (19 samples, 0.25%)starknet_types_core::felt::primitive_conversions::_<impl core::convert::TryFrom<starknet_types_core::felt::Felt> for u128>::try_from (1 samples, 0.01%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_le (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.01%)core::fmt::Formatter::pad_integral (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)realloc (1 samples, 0.01%)core::fmt::Formatter::pad_integral (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)core::fmt::Formatter::pad_integral (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_char (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)default_zone_realloc (1 samples, 0.01%)__bzero (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_realloc (10 samples, 0.13%)xzm_realloc (9 samples, 0.12%)_xzm_xzone_malloc_tiny (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (14 samples, 0.19%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (12 samples, 0.16%)alloc::raw_vec::finish_grow (12 samples, 0.16%)_realloc (12 samples, 0.16%)xzm_malloc_zone_size (2 samples, 0.03%)core::fmt::write (38 samples, 0.51%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (35 samples, 0.47%)core::fmt::write (27 samples, 0.36%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (26 samples, 0.35%)core::fmt::write (24 samples, 0.32%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (22 samples, 0.29%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::fmt::format::format_inner (39 samples, 0.52%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (2 samples, 0.03%)hashbrown::raw::RawTable<T,A>::reserve_rehash (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)chrono::offset::utc::Utc::now (1 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (1 samples, 0.01%)clock_gettime (1 samples, 0.01%)gettimeofday (1 samples, 0.01%)__commpage_gettimeofday_internal (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (69 samples, 0.92%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (46 samples, 0.61%)torii::etl::envelope::Envelope::new (2 samples, 0.03%)torii::etl::decoder::DecoderId::new (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event (1 samples, 0.01%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (86 samples, 1.14%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (76 samples, 1.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)_free (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (95 samples, 1.26%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::commit_cursor::_{{closure}} (1 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (1 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (1 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.01%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (1 samples, 0.01%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.01%)tokio::runtime::context::with_scheduler (1 samples, 0.01%)parking_lot::condvar::Condvar::notify_one_slow (1 samples, 0.01%)__psynch_cvsignal (1 samples, 0.01%)encoding_rs::Encoding::decode_without_bom_handling (1 samples, 0.01%)encoding_rs::utf_8::utf8_valid_up_to (1 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (4 samples, 0.05%)http_body_util::collected::Collected<B>::to_bytes (2 samples, 0.03%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.07%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)DYLD-STUB$$memcmp (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13 samples, 0.17%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.15%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.05%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (3 samples, 0.04%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (15 samples, 0.20%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (15 samples, 0.20%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (15 samples, 0.20%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (15 samples, 0.20%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19 samples, 0.25%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19 samples, 0.25%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (19 samples, 0.25%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (19 samples, 0.25%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19 samples, 0.25%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (19 samples, 0.25%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (19 samples, 0.25%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (4 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.05%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.05%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (4 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.05%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_xzone_malloc_small_freelist (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (5 samples, 0.07%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.08%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (12 samples, 0.16%)serde_core::de::Deserializer::__deserialize_content_v1 (10 samples, 0.13%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (38 samples, 0.51%)serde_json::de::from_str (33 samples, 0.44%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (33 samples, 0.44%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (33 samples, 0.44%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (33 samples, 0.44%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (14 samples, 0.19%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (4 samples, 0.05%)serde::private::de::content::content_clone (3 samples, 0.04%)serde::private::de::content::content_clone (3 samples, 0.04%)_xzm_xzone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (1 samples, 0.01%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (7 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (7 samples, 0.09%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (6 samples, 0.08%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (6 samples, 0.08%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.08%)starknet_types_core::felt::Felt::from_hex (6 samples, 0.08%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (6 samples, 0.08%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (6 samples, 0.08%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (5 samples, 0.07%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (10 samples, 0.13%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (10 samples, 0.13%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (10 samples, 0.13%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (10 samples, 0.13%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (10 samples, 0.13%)starknet_types_core::felt::Felt::from_hex (10 samples, 0.13%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (10 samples, 0.13%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (8 samples, 0.11%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.05%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (22 samples, 0.29%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.08%)serde::private::de::content::content_clone (6 samples, 0.08%)serde::private::de::content::content_clone (6 samples, 0.08%)serde::private::de::content::content_clone (4 samples, 0.05%)serde::private::de::content::content_clone (3 samples, 0.04%)_platform_memmove (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (9 samples, 0.12%)starknet_types_core::felt::Felt::from_hex (9 samples, 0.12%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (9 samples, 0.12%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (9 samples, 0.12%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (6 samples, 0.08%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (10 samples, 0.13%)DYLD-STUB$$free (1 samples, 0.01%)_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (14 samples, 0.19%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (19 samples, 0.25%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (19 samples, 0.25%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (18 samples, 0.24%)serde::private::de::content::MapDeserializer<E>::end (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (50 samples, 0.67%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (50 samples, 0.67%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (50 samples, 0.67%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (50 samples, 0.67%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (28 samples, 0.37%)<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (22 samples, 0.29%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (22 samples, 0.29%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.11%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (1 samples, 0.01%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (104 samples, 1.38%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (104 samples, 1.38%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (66 samples, 0.88%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (8 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (7 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.09%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)SSLRecordServiceWriteQueueInternal (1 samples, 0.01%)security_framework::secure_transport::write_func (1 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_write (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1 samples, 0.01%)__sendto (1 samples, 0.01%)Security::TrackingAllocator::malloc(unsigned long) (1 samples, 0.01%)Security::TrackingAllocator::malloc(unsigned long) (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)operator new(unsigned long, std::__type_descriptor_t) (1 samples, 0.01%)Security::KeychainCore::Certificate::publicKey() (2 samples, 0.03%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (2 samples, 0.03%)Security::KeychainCore::Certificate::clHandle() (2 samples, 0.03%)Security::CssmClient::AttachmentImpl::activate() (2 samples, 0.03%)Security::CssmClient::ModuleImpl::activate() (2 samples, 0.03%)CSSM_ModuleLoad (2 samples, 0.03%)Security::CssmClient::Table<Security::MDSClient::Common>::startQuery(Security::CssmQuery const&, bool) (2 samples, 0.03%)Security::MDSClient::Directory::dlGetFirst(cssm_query const&, cssm_db_record_attribute_data&, cssm_data*, cssm_db_unique_record*&) (2 samples, 0.03%)Security::MDSClient::Directory::cdsa() const (2 samples, 0.03%)mds_DbOpen(long, char const*, cssm_net_address const*, unsigned int, cssm_access_credentials const*, void const*, long*) (2 samples, 0.03%)Security::MDSSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.03%)Security::DatabaseSession::DbOpen(char const*, cssm_net_address const*, unsigned int, Security::AccessCredentials const*, void const*, long&) (2 samples, 0.03%)Security::DatabaseManager::dbOpen(Security::DatabaseSession&, Security::DbName const&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.03%)Security::Database::_dbOpen(Security::DatabaseSession&, unsigned int, Security::AccessCredentials const*, void const*) (2 samples, 0.03%)Security::AppleDatabase::dbOpen(Security::DbContext&) (2 samples, 0.03%)Security::DbModifier::getDbVersion(bool) (2 samples, 0.03%)Security::MetaRecord::unpackRecord(Security::ReadSection const&, Security::Allocator&, cssm_db_record_attribute_data*, Security::CssmData*, unsigned int) const (2 samples, 0.03%)Security::MetaAttribute::unpackAttribute(Security::ReadSection const&, Security::Allocator&, unsigned int&, cssm_data*&) const (2 samples, 0.03%)Security::TypedMetaAttribute<Security::StringValue>::unpackValue(Security::ReadSection const&, unsigned int&, cssm_data&, Security::Allocator&) const (1 samples, 0.01%)Security::TrackingAllocator::malloc(unsigned long) (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)$_0::operator()() const::'lambda0'(unsigned long, std::__type_descriptor_t)::__invoke(unsigned long, std::__type_descriptor_t) (1 samples, 0.01%)malloc_type_malloc (1 samples, 0.01%)SecTrustCopyPublicKey (3 samples, 0.04%)SecCertificateCopyPublicKey$LEGACYMAC (3 samples, 0.04%)countLegacyAPI (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__countLegacyAPI_block_invoke (1 samples, 0.01%)+[SecCoreAnalytics sendEventLazy:builder:] (1 samples, 0.01%)AnalyticsSendEventInternal(NSString const*, NSDictionary<NSString*, NSObject*>* () block_pointer, XPCMessagePriority, EventPayloadFormat, NSDictionary<NSString*, NSObject*>*) (1 samples, 0.01%)CoreAnalytics::Client::sendEventAlways(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::function<nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>> ()> const&, CoreAnalytics::SendEventOptions) (1 samples, 0.01%)std::__1::__function::__func<AnalyticsSendEventInternal(NSString const*, NSDictionary<NSString*, NSObject*>* () block_pointer, XPCMessagePriority, EventPayloadFormat, NSDictionary<NSString*, NSObject*>*)::$_0, std::__1::allocator<AnalyticsSendEventInternal(NSString const*, NSDictionary<NSString*, NSObject*>* () block_pointer, XPCMessagePriority, EventPayloadFormat, NSDictionary<NSString*, NSObject*>*)::$_0>, nlohmann::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>> ()>::operator()() (1 samples, 0.01%)makeJsonFromNSObjectWithDepthCount(NSObject*, unsigned char) (1 samples, 0.01%)-[__NSDictionaryI enumerateKeysAndObjectsWithOptions:usingBlock:] (1 samples, 0.01%)__NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__ (1 samples, 0.01%)invocation function for block in makeJsonFromNSObjectWithDepthCount(NSObject*, unsigned char) (1 samples, 0.01%)makeJsonFromNSObjectWithDepthCount(NSObject*, unsigned char) (1 samples, 0.01%)objc_retainAutorelease (1 samples, 0.01%)customRR_retain (1 samples, 0.01%)sslGetPubKeyFromBits (1 samples, 0.01%)ccrsa_init_pub (1 samples, 0.01%)cczp_mm_init_ws (1 samples, 0.01%)cczp_init_ws (1 samples, 0.01%)ccn_divmod_ws (1 samples, 0.01%)ccn_cond_add (1 samples, 0.01%)SSLHandshake (6 samples, 0.08%)SSLHandshakeProceed (6 samples, 0.08%)tls_handshake_process (5 samples, 0.07%)SSLProcessHandshakeRecordInner (5 samples, 0.07%)tls_handshake_message_callback (5 samples, 0.07%)tls_helper_set_peer_pubkey (5 samples, 0.07%)tls_helper_create_cfarray_from_certificates (1 samples, 0.01%)SecCertificateCreateWithData (1 samples, 0.01%)__CFDataInit (1 samples, 0.01%)_CFGetTSDCreateIfNeeded (1 samples, 0.01%)__CFTSDGetTable (1 samples, 0.01%)__handle_trust_evaluate_xpc_block_invoke_2 (1 samples, 0.01%)SecXPCDictionaryCopyDictionaryOptional (1 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (1 samples, 0.01%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (1 samples, 0.01%)der_decode_plist (1 samples, 0.01%)der_decode_dictionary (1 samples, 0.01%)der_decode_plist (1 samples, 0.01%)der_decode_date (1 samples, 0.01%)der_decode_commontime_body (1 samples, 0.01%)SecCFCalendarDoWithZuluCalendar (1 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SecCFCalendarDoWithZuluCalendar_block_invoke (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SecCFCalendarGetZulu_block_invoke (1 samples, 0.01%)@objc static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.01%)specialized static NSCalendar._newCalendarWithIdentifier(_:) (1 samples, 0.01%)protocol witness for _CalendarProtocol.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) in conformance _CalendarGregorian (1 samples, 0.01%)_CalendarGregorian.init(identifier:timeZone:locale:firstWeekday:minimumDaysInFirstWeek:gregorianStartDate:) (1 samples, 0.01%)TimeZoneCache.State.findCurrentTimeZone() (1 samples, 0.01%)TimeZoneCache.State.fixed(_:) (1 samples, 0.01%)_TimeZoneICU.init(identifier:) (1 samples, 0.01%)specialized _withResizingUCharBuffer(initialSize:_:) (1 samples, 0.01%)specialized closure #1 in _withResizingUCharBuffer(initialSize:_:) (1 samples, 0.01%)ucal_getCanonicalTimeZoneID (1 samples, 0.01%)icu::TimeZone::getCanonicalID(icu::UnicodeString const&, icu::UnicodeString&, signed char&, UErrorCode&) (1 samples, 0.01%)icu::ZoneMeta::getCanonicalCLDRID(icu::UnicodeString const&, icu::UnicodeString&, UErrorCode&) (1 samples, 0.01%)icu::ZoneMeta::getCanonicalCLDRID(icu::UnicodeString const&, UErrorCode&) (1 samples, 0.01%)0x191a12804 (1 samples, 0.01%)0x191a15dc0 (1 samples, 0.01%)0x191a16ab8 (1 samples, 0.01%)0x1919e4488 (1 samples, 0.01%)0x1919e4f14 (1 samples, 0.01%)0x1919e52b4 (1 samples, 0.01%)stat (1 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (8 samples, 0.11%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (8 samples, 0.11%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (8 samples, 0.11%)security_framework::trust::SecTrust::evaluate_with_error (2 samples, 0.03%)SecTrustEvaluateInternal (2 samples, 0.03%)SecTrustEvaluateIfNecessary (2 samples, 0.03%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.03%)_dispatch_client_callout (2 samples, 0.03%)__SecTrustEvaluateIfNecessary_block_invoke (2 samples, 0.03%)_os_activity_initiate_impl (2 samples, 0.03%)__SecTrustEvaluateIfNecessary_block_invoke_2 (2 samples, 0.03%)SecOSStatusWith (2 samples, 0.03%)__SecTrustEvaluateIfNecessary_block_invoke_3 (2 samples, 0.03%)securityd_send_sync_and_do (2 samples, 0.03%)securityd_message_with_reply_sync (1 samples, 0.01%)securityd_connection_for_operation (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__trustd_connection_block_invoke (1 samples, 0.01%)securityd_create_connection (1 samples, 0.01%)xpc_connection_resume (1 samples, 0.01%)_xpc_connection_activate_if_needed (1 samples, 0.01%)_xpc_connection_init (1 samples, 0.01%)_xpc_connection_check_in (1 samples, 0.01%)_dispatch_lane_resume_activate (1 samples, 0.01%)_dispatch_mach_activate (1 samples, 0.01%)__kdebug_trace64 (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (10 samples, 0.13%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (10 samples, 0.13%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (10 samples, 0.13%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (10 samples, 0.13%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (10 samples, 0.13%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (10 samples, 0.13%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (9 samples, 0.12%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.12%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.12%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (9 samples, 0.12%)reqwest::connect::with_timeout::_{{closure}} (9 samples, 0.12%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (9 samples, 0.12%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (9 samples, 0.12%)<tokio_native_tls::StartedHandshakeFuture<F,S> as core::future::future::Future>::poll (1 samples, 0.01%)native_tls::imp::TlsConnector::connect (1 samples, 0.01%)security_framework::secure_transport::ClientBuilder::handshake (1 samples, 0.01%)SSLCreateContext (1 samples, 0.01%)SSLCreateContextWithRecordFuncsAndPath (1 samples, 0.01%)SSLContextGetTypeID (1 samples, 0.01%)_dispatch_once_callout (1 samples, 0.01%)_dispatch_client_callout (1 samples, 0.01%)__SSLContextGetTypeID_block_invoke (1 samples, 0.01%)_CFRuntimeRegisterClass (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)sqlx_core::pool::executor::_<impl sqlx_core::executor::Executor for &sqlx_core::pool::Pool<DB>>::fetch_optional::_{{closure}} (1 samples, 0.01%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (1 samples, 0.01%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (117 samples, 1.56%)torii::etl::extractor::block_range::BlockRangeExtractor::prepare_batch_for::_{{closure}}::_{{closure}} (1 samples, 0.01%)tracing_core::event::Event::dispatch (1 samples, 0.01%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (1 samples, 0.01%)std::thread::local::LocalKey<T>::with (1 samples, 0.01%)<std::io::stdio::Stdout as std::io::Write>::write_all (1 samples, 0.01%)write (1 samples, 0.01%)<deduplicated_symbol> (6 samples, 0.08%)mio::waker::Waker::wake (6 samples, 0.08%)kevent (6 samples, 0.08%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (10 samples, 0.13%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (10 samples, 0.13%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (9 samples, 0.12%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (9 samples, 0.12%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (8 samples, 0.11%)futures_channel::mpsc::Receiver<T>::next_message (8 samples, 0.11%)tokio::runtime::task::waker::wake_by_val (8 samples, 0.11%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (8 samples, 0.11%)tokio::runtime::context::with_scheduler (8 samples, 0.11%)parking_lot::condvar::Condvar::notify_one_slow (2 samples, 0.03%)pthread_cond_signal (2 samples, 0.03%)__psynch_cvsignal (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)encoding_rs::Encoding::decode_without_bom_handling (5 samples, 0.07%)encoding_rs::utf_8::utf8_valid_up_to (5 samples, 0.07%)DYLD-STUB$$memcpy (1 samples, 0.01%)_platform_memmove (6 samples, 0.08%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (27 samples, 0.36%)http_body_util::collected::Collected<B>::to_bytes (11 samples, 0.15%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (11 samples, 0.15%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (11 samples, 0.15%)bytes::bytes_mut::shared_v_drop (2 samples, 0.03%)_xzm_xzone_madvise_batch (2 samples, 0.03%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)mach_vm_reclaim_try_enter (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.03%)_malloc_zone_malloc (2 samples, 0.03%)_platform_memmove (8 samples, 0.11%)_xzm_xzone_malloc (3 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used_locked (1 samples, 0.01%)mach_vm_reclaim_try_cancel (1 samples, 0.01%)mach_absolute_time (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (5 samples, 0.07%)_xzm_xzone_find_and_malloc_from_freelist_chunk (4 samples, 0.05%)xzm_chunk_mark_used (3 samples, 0.04%)_xzm_reclaim_mark_used (3 samples, 0.04%)mach_vm_reclaim_update_kernel_accounting (3 samples, 0.04%)mach_vm_reclaim_update_kernel_accounting_trap (3 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (29 samples, 0.39%)malloc (1 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.03%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (1 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (36 samples, 0.48%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (36 samples, 0.48%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (36 samples, 0.48%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (36 samples, 0.48%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (36 samples, 0.48%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_platform_memmove (2 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (1 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (3 samples, 0.04%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_alloc_segment (1 samples, 0.01%)mach_vm_map (1 samples, 0.01%)_kernelrpc_mach_vm_map_trap (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (29 samples, 0.39%)serde_core::de::Deserializer::__deserialize_content_v1 (20 samples, 0.27%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (18 samples, 0.24%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.03%)_platform_memmove (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (99 samples, 1.32%)serde_json::de::from_str (72 samples, 0.96%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (72 samples, 0.96%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (72 samples, 0.96%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (72 samples, 0.96%)serde_core::de::Deserializer::__deserialize_content_v1 (35 samples, 0.47%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (35 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (35 samples, 0.47%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (35 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (35 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::LegacyContractAbiEntry>::deserialize (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<starknet_core::types::codegen::_::<impl serde_core::de::Deserialize for starknet_core::types::codegen::LegacyFunctionAbiType>::deserialize::__Visitor as serde_core::de::Visitor>::visit_enum (1 samples, 0.01%)<serde::private::de::content::EnumRefDeserializer<E> as serde_core::de::EnumAccess>::variant_seed (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (217 samples, 2.89%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (217 samples, 2.89%)<s..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (215 samples, 2.86%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (213 samples, 2.84%)<s..starknet_types_core::felt::Felt::from_hex (212 samples, 2.82%)st..<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (211 samples, 2.81%)<l..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (200 samples, 2.66%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (117 samples, 1.56%)DYLD-STUB$$free (1 samples, 0.01%)_free (4 samples, 0.05%)_xzm_free (12 samples, 0.16%)_platform_memset (1 samples, 0.01%)_xzm_xzone_madvise_batch (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (19 samples, 0.25%)core::ptr::drop_in_place<serde_core::private::content::Content> (19 samples, 0.25%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (8 samples, 0.11%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (346 samples, 4.61%)<star..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (344 samples, 4.58%)stark..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (245 samples, 3.26%)sta..serde_core::de::Deserializer::__deserialize_content_v1 (9 samples, 0.12%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (9 samples, 0.12%)serde_core::de::Deserializer::__deserialize_content_v1 (9 samples, 0.12%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)core::ptr::drop_in_place<(starknet_types_core::felt::Felt,torii::etl::extractor::starknet_helpers::ContractAbi)> (1 samples, 0.01%)core::ptr::drop_in_place<starknet_core::types::contract::AbiEntry> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (1 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (2 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (1 samples, 0.01%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (1 samples, 0.01%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (1 samples, 0.01%)tokio::runtime::io::registration::Registration::try_io (1 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (1 samples, 0.01%)__recvfrom (1 samples, 0.01%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)core::ptr::drop_in_place<sqlx_postgres::arguments::PgArgumentBuffer> (1 samples, 0.01%)core::ptr::drop_in_place<sqlx_core::pool::connection::PoolConnection<sqlx_core::any::database::Any>> (1 samples, 0.01%)<sqlx_core::pool::connection::PoolConnection<DB> as core::ops::drop::Drop>::drop (1 samples, 0.01%)sqlx_core::rt::spawn (1 samples, 0.01%)tokio::runtime::handle::Handle::spawn (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::Handle::bind_new_task (1 samples, 0.01%)tokio::runtime::task::core::Cell<T,S>::new (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_posix_memalign (1 samples, 0.01%)_malloc_zone_memalign (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::ptr::drop_in_place<sqlx_core::rt::timeout<sqlx_core::pool::inner::PoolInner<sqlx_core::any::database::Any>::acquire::{{closure}}::{{closure}}>::{{closure}}> (1 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (3 samples, 0.04%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (3 samples, 0.04%)tokio::net::tcp::stream::TcpStream::try_write (3 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (3 samples, 0.04%)<&std::net::tcp::TcpStream as std::io::Write>::write (3 samples, 0.04%)__sendto (3 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (4 samples, 0.05%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (4 samples, 0.05%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (1 samples, 0.01%)sqlx_core::net::socket::buffered::ReadBuffer::advance (1 samples, 0.01%)bytes::bytes_mut::BytesMut::unsplit (1 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (11 samples, 0.15%)<deduplicated_symbol> (11 samples, 0.15%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (11 samples, 0.15%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (11 samples, 0.15%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (11 samples, 0.15%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (7 samples, 0.09%)std::time::Instant::elapsed (2 samples, 0.03%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.03%)clock_gettime (2 samples, 0.03%)clock_gettime_nsec_np (2 samples, 0.03%)mach_absolute_time (2 samples, 0.03%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (12 samples, 0.16%)sqlx_core::query::Query<DB,<DB as sqlx_core::database::Database>::Arguments>::bind (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (1 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (1 samples, 0.01%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (1 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (1 samples, 0.01%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (4 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (3 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (1 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (6 samples, 0.08%)serde_json::de::from_trait (6 samples, 0.08%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (6 samples, 0.08%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (6 samples, 0.08%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (6 samples, 0.08%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEvent>::deserialize (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (5 samples, 0.07%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (4 samples, 0.05%)alloc::fmt::format::format_inner (4 samples, 0.05%)core::fmt::write (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.04%)_platform_memmove (3 samples, 0.04%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (3 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (3 samples, 0.04%)alloc::fmt::format::format_inner (3 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (376 samples, 5.01%)<torii..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (376 samples, 5.01%)torii:..torii::etl::identification::registry::ContractRegistry::run_rules (11 samples, 0.15%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (3 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (3 samples, 0.04%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_realloc (2 samples, 0.03%)xzm_malloc_zone_size (1 samples, 0.01%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (2 samples, 0.03%)torii::etl::decoder::DecoderId::new (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)<Q as hashbrown::Equivalent<K>>::equivalent (1 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)<starknet_core::types::u256::U256 as core::convert::From<u64>>::from (1 samples, 0.01%)<alloc::vec::into_iter::IntoIter<T,A> as core::ops::drop::Drop>::drop (1 samples, 0.01%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (2 samples, 0.03%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (2 samples, 0.03%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (2 samples, 0.03%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (2 samples, 0.03%)<hyper_util::rt::tokio::TokioExecutor as hyper::rt::Executor<Fut>>::execute (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)serde_json::ser::format_escaped_str (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (4 samples, 0.05%)alloc::fmt::format::format_inner (4 samples, 0.05%)core::fmt::write (4 samples, 0.05%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (4 samples, 0.05%)core::fmt::write (3 samples, 0.04%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (3 samples, 0.04%)core::fmt::write (2 samples, 0.03%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (2 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)serde_core::ser::Serializer::collect_seq (7 samples, 0.09%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (7 samples, 0.09%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (6 samples, 0.08%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (6 samples, 0.08%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (5 samples, 0.07%)serde_core::ser::Serializer::collect_seq (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (1 samples, 0.01%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (14 samples, 0.19%)serde_json::de::from_str (4 samples, 0.05%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (4 samples, 0.05%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (4 samples, 0.05%)starknet_providers::jsonrpc::_::_<impl serde_core::de::Deserialize for starknet_providers::jsonrpc::JsonRpcResponse<T>>::deserialize (3 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (1 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (1 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::de::DeserializeAs<starknet_types_core::felt::Felt>>::deserialize_as (1 samples, 0.01%)starknet_types_core::felt::Felt::from_hex (1 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (1 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (1 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (16 samples, 0.21%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (16 samples, 0.21%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}}::_{{closure}} (1 samples, 0.01%)tracing_core::event::Event::dispatch (1 samples, 0.01%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (1 samples, 0.01%)std::thread::local::LocalKey<T>::with (1 samples, 0.01%)<std::io::stdio::Stdout as std::io::Write>::write_all (1 samples, 0.01%)<std::io::stdio::StdoutLock as std::io::Write>::write_all (1 samples, 0.01%)write (1 samples, 0.01%)_free (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (7 samples, 0.09%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)_free (1 samples, 0.01%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)DYLD-STUB$$mach_absolute_time (1 samples, 0.01%)_xzm_free (8 samples, 0.11%)mach_absolute_time (3 samples, 0.04%)_free (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (2 samples, 0.03%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (8 samples, 0.11%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.05%)postgres_protocol::message::frontend::write_body (3 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.04%)_platform_memmove (1 samples, 0.01%)_free (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::row::Row> (24 samples, 0.32%)alloc::sync::Arc<T,A>::drop_slow (15 samples, 0.20%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (12 samples, 0.16%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_smaller (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)_xzm_chunk_list_pop (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (7 samples, 0.09%)hashbrown::raw::RawTable<T,A>::reserve_rehash (4 samples, 0.05%)core::hash::BuildHasher::hash_one (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)tokio_postgres::row::Row::get (2 samples, 0.03%)tokio_postgres::row::Row::col_buffer (2 samples, 0.03%)__bzero (1 samples, 0.01%)_xzm_free (3 samples, 0.04%)mach_absolute_time (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio::runtime::context::with_scheduler (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (5 samples, 0.07%)tokio::runtime::task::waker::wake_by_val (4 samples, 0.05%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (2 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.03%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (18 samples, 0.24%)futures_channel::mpsc::channel (12 samples, 0.16%)_xzm_xzone_malloc_tiny (6 samples, 0.08%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (28 samples, 0.37%)tokio_postgres::client::InnerClient::with_buf (9 samples, 0.12%)postgres_protocol::message::frontend::write_body (3 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (8 samples, 0.11%)__bzero (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (42 samples, 0.56%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (42 samples, 0.56%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)_xzm_chunk_batch_list_push (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)_free (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (9 samples, 0.12%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (9 samples, 0.12%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.04%)_xzm_free (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (6 samples, 0.08%)_platform_memmove (4 samples, 0.05%)DYLD-STUB$$free (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.09%)alloc::raw_vec::finish_grow (7 samples, 0.09%)_xzm_xzone_malloc_tiny (4 samples, 0.05%)core::iter::traits::iterator::Iterator::unzip (10 samples, 0.13%)postgres_types::ToSql::encode_format (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (27 samples, 0.36%)tokio_postgres::query::encode_bind (26 samples, 0.35%)core::ptr::drop_in_place<core::iter::adapters::enumerate::Enumerate<alloc::vec::into_iter::IntoIter<(&dyn postgres_types::ToSql,postgres_types::Type)>>> (2 samples, 0.03%)bytes::bytes::Bytes::slice (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (7 samples, 0.09%)postgres_protocol::message::backend::Message::parse (5 samples, 0.07%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)core::str::converts::from_utf8 (2 samples, 0.03%)_platform_memcmp (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (6 samples, 0.08%)core::str::iter::SplitInternal<P>::next_back (4 samples, 0.05%)core::slice::memchr::memrchr (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (6 samples, 0.08%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)tokio_postgres::client::InnerClient::send (14 samples, 0.19%)futures_channel::mpsc::channel (7 samples, 0.09%)_xzm_xzone_malloc_tiny_or_early (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.07%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.05%)_xzm_free (3 samples, 0.04%)_platform_memset (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (8 samples, 0.11%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (8 samples, 0.11%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (35 samples, 0.47%)tokio_postgres::client::Responses::poll_next (19 samples, 0.25%)postgres_protocol::message::backend::Message::parse (12 samples, 0.16%)bytes::bytes_mut::shared_v_drop (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_malloc_zone_size (7 samples, 0.09%)alloc::fmt::format::format_inner (21 samples, 0.28%)core::fmt::write (17 samples, 0.23%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (14 samples, 0.19%)<alloc::string::String as core::fmt::Write>::write_str (12 samples, 0.16%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (12 samples, 0.16%)alloc::raw_vec::finish_grow (10 samples, 0.13%)_realloc (10 samples, 0.13%)xzm_realloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.04%)alloc::raw_vec::finish_grow (3 samples, 0.04%)_xzm_xzone_malloc (2 samples, 0.03%)_free (1 samples, 0.01%)_xzm_free (6 samples, 0.08%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (13 samples, 0.17%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (13 samples, 0.17%)alloc::sync::Arc<T,A>::drop_slow (11 samples, 0.15%)free (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (9 samples, 0.12%)futures_channel::mpsc::channel (7 samples, 0.09%)_xzm_xzone_malloc_tiny (5 samples, 0.07%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.03%)free (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (8 samples, 0.11%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (8 samples, 0.11%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (24 samples, 0.32%)postgres_protocol::message::backend::Message::parse (20 samples, 0.27%)bytes::bytes_mut::BytesMut::split_to (3 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)__rustc::__rdl_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)_malloc_zone_realloc (3 samples, 0.04%)xzm_realloc (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (6 samples, 0.08%)bytes::bytes_mut::BytesMut::reserve_inner (5 samples, 0.07%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.07%)alloc::raw_vec::finish_grow (5 samples, 0.07%)_realloc (4 samples, 0.05%)xzm_malloc_zone_size (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::slice::memchr::memchr_aligned (2 samples, 0.03%)tokio_postgres::prepare::encode (17 samples, 0.23%)tokio_postgres::client::InnerClient::with_buf (16 samples, 0.21%)postgres_protocol::message::frontend::write_body (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (7 samples, 0.09%)postgres_types::Type::from_oid (2 samples, 0.03%)postgres_types::type_gen::Inner::from_oid (2 samples, 0.03%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (244 samples, 3.25%)tok..tokio_postgres::client::Client::execute::_{{closure}} (239 samples, 3.18%)tok..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (100 samples, 1.33%)tokio_postgres::statement::Statement::new (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)bytes::bytes_mut::shared_v_drop (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (4 samples, 0.05%)tokio_postgres::client::Responses::poll_next (11 samples, 0.15%)postgres_protocol::message::backend::Message::parse (10 samples, 0.13%)std::io::Read::read_exact (1 samples, 0.01%)tokio_postgres::query::extract_row_affected (4 samples, 0.05%)core::str::iter::SplitInternal<P>::next_back (3 samples, 0.04%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (18 samples, 0.24%)tokio_postgres::row::Row::new (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.04%)futures_channel::mpsc::channel (2 samples, 0.03%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.07%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (5 samples, 0.07%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (4 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (2 samples, 0.03%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (7 samples, 0.09%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (7 samples, 0.09%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.04%)_platform_memmove (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)postgres_types::__to_sql_checked (1 samples, 0.01%)DYLD-STUB$$memcpy (2 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (6 samples, 0.08%)_platform_memmove (2 samples, 0.03%)<i64 as postgres_types::ToSql>::to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (5 samples, 0.07%)<deduplicated_symbol> (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (13 samples, 0.17%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.09%)alloc::raw_vec::finish_grow (7 samples, 0.09%)_xzm_xzone_malloc_tiny (4 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (33 samples, 0.44%)tokio_postgres::query::encode_bind (26 samples, 0.35%)postgres_types::__to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (4 samples, 0.05%)_xzm_xzone_malloc_tiny (4 samples, 0.05%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (9 samples, 0.12%)futures_channel::mpsc::channel (5 samples, 0.07%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)_platform_memset (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (57 samples, 0.76%)tokio_postgres::query::start::_{{closure}} (23 samples, 0.31%)tokio_postgres::client::Responses::poll_next (11 samples, 0.15%)postgres_protocol::message::backend::Message::parse (8 samples, 0.11%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (4 samples, 0.05%)alloc::raw_vec::finish_grow (2 samples, 0.03%)tokio_postgres::query::start::_{{closure}} (1 samples, 0.01%)core::fmt::Formatter::pad_integral (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (9 samples, 0.12%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (9 samples, 0.12%)alloc::raw_vec::finish_grow (7 samples, 0.09%)_realloc (7 samples, 0.09%)xzm_malloc_zone_size (4 samples, 0.05%)alloc::fmt::format::format_inner (13 samples, 0.17%)core::fmt::write (11 samples, 0.15%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (10 samples, 0.13%)core::fmt::Formatter::pad_integral (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.05%)alloc::raw_vec::finish_grow (4 samples, 0.05%)_realloc (4 samples, 0.05%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (13 samples, 0.17%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (13 samples, 0.17%)alloc::sync::Arc<T,A>::drop_slow (8 samples, 0.11%)_xzm_free (7 samples, 0.09%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::prepare::prepare::{{closure}}> (2 samples, 0.03%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.04%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.03%)_malloc_zone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (6 samples, 0.08%)futures_channel::mpsc::channel (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)DYLD-STUB$$free (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.04%)_xzm_free (1 samples, 0.01%)_platform_memset (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)bytes::bytes_mut::shared_v_clone (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (12 samples, 0.16%)postgres_protocol::message::backend::Message::parse (8 samples, 0.11%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.04%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (9 samples, 0.12%)bytes::bytes_mut::BytesMut::reserve_inner (7 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.09%)alloc::raw_vec::finish_grow (6 samples, 0.08%)_realloc (3 samples, 0.04%)_malloc_zone_realloc (2 samples, 0.03%)xzm_realloc (2 samples, 0.03%)_xzm_xzone_malloc (1 samples, 0.01%)core::slice::memchr::memchr_aligned (2 samples, 0.03%)tokio_postgres::prepare::encode (14 samples, 0.19%)tokio_postgres::client::InnerClient::with_buf (13 samples, 0.17%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (10 samples, 0.13%)postgres_types::Type::from_oid (1 samples, 0.01%)postgres_types::type_gen::Inner::from_oid (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (186 samples, 2.48%)to..tokio_postgres::client::Client::query_opt::_{{closure}} (186 samples, 2.48%)to..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (90 samples, 1.20%)tokio_postgres::statement::Statement::new (5 samples, 0.07%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (5 samples, 0.07%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (1 samples, 0.01%)torii_common::felt_to_blob (12 samples, 0.16%)starknet_types_core::felt::Felt::to_bytes_be (3 samples, 0.04%)torii_common::u256_to_blob (1 samples, 0.01%)<starknet_core::types::u256::U256 as core::ops::arith::Sub>::sub (2 samples, 0.03%)subtle::black_box (2 samples, 0.03%)_free (1 samples, 0.01%)_xzm_free (3 samples, 0.04%)_platform_memset (1 samples, 0.01%)core::hash::BuildHasher::hash_one (2 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (3 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (3 samples, 0.04%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (3 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)core::hash::BuildHasher::hash_one (6 samples, 0.08%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (6 samples, 0.08%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (7 samples, 0.09%)hashbrown::raw::RawTable<T,A>::reserve_rehash (1 samples, 0.01%)_xzm_malloc_large_huge (1 samples, 0.01%)xzm_segment_group_alloc_chunk (1 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (1 samples, 0.01%)_xzm_segment_group_span_mark_smaller (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.04%)futures_channel::mpsc::channel (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (4 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.07%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (5 samples, 0.07%)_xzm_free (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (2 samples, 0.03%)postgres_types::ToSql::encode_format (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (6 samples, 0.08%)tokio_postgres::query::encode_bind (5 samples, 0.07%)postgres_types::__to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (2 samples, 0.03%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)tokio_postgres::query::extract_row_affected (1 samples, 0.01%)core::str::converts::from_utf8 (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (2 samples, 0.03%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (5 samples, 0.07%)tokio_postgres::client::Responses::poll_next (2 samples, 0.03%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (3 samples, 0.04%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (3 samples, 0.04%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.03%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (4 samples, 0.05%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (4 samples, 0.05%)free (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)DYLD-STUB$$malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.04%)futures_channel::mpsc::channel (2 samples, 0.03%)__rustc::__rdl_alloc (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)tokio_postgres::prepare::encode (4 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.05%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (42 samples, 0.56%)tokio_postgres::client::Client::execute::_{{closure}} (41 samples, 0.55%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (19 samples, 0.25%)tokio_postgres::statement::Statement::new (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.05%)tokio_postgres::query::encode_bind (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (7 samples, 0.09%)tokio_postgres::query::start::_{{closure}} (3 samples, 0.04%)tokio_postgres::client::Responses::poll_next (3 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_malloc_zone_malloc (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (4 samples, 0.05%)futures_channel::mpsc::channel (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (5 samples, 0.07%)postgres_protocol::message::backend::Message::parse (3 samples, 0.04%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (23 samples, 0.31%)tokio_postgres::client::Client::query_opt::_{{closure}} (23 samples, 0.31%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (14 samples, 0.19%)tokio_postgres::prepare::encode (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)torii_common::felt_to_blob (2 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)torii_common::u256_to_blob (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (96 samples, 1.28%)xzm_segment_group_free_chunk (1 samples, 0.01%)_xzm_segment_group_segment_span_free_coalesce (1 samples, 0.01%)_xzm_segment_group_span_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (5 samples, 0.07%)tokio_postgres::client::Responses::poll_next (4 samples, 0.05%)postgres_protocol::message::backend::Message::parse (4 samples, 0.05%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (1 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)bytes::bytes_mut::BytesMut::freeze (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.04%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (5 samples, 0.07%)futures_channel::mpsc::channel (2 samples, 0.03%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (7 samples, 0.09%)tokio_postgres::query::start::_{{closure}} (6 samples, 0.08%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.03%)alloc::fmt::format::format_inner (3 samples, 0.04%)core::fmt::write (1 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)_malloc_zone_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.03%)_xzm_xzone_malloc_tiny_or_early (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)_xzm_free (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::prepare::get_type::{{closure}}> (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (3 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.03%)std::io::Read::read_exact (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)xzm_realloc (1 samples, 0.01%)tokio_postgres::prepare::encode (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.03%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (30 samples, 0.40%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (16 samples, 0.21%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.01%)postgres_types::Type::from_oid (1 samples, 0.01%)postgres_types::type_gen::Inner::from_oid (1 samples, 0.01%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (669 samples, 8.91%)<torii_erc20:..torii_erc20::storage::Erc20Storage::pg_get_balances_batch::_{{closure}} (33 samples, 0.44%)torii_common::blob_to_u256 (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (1 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)tokio_postgres::row::Row::new (1 samples, 0.01%)tokio_postgres::query::encode (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)postgres_types::__to_sql_checked (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (2 samples, 0.03%)tokio_postgres::query::start::_{{closure}} (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)tokio_postgres::prepare::encode (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)core::slice::memchr::memchr_aligned (1 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (7 samples, 0.09%)tokio_postgres::client::Client::query_raw::_{{closure}} (5 samples, 0.07%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (3 samples, 0.04%)tokio_postgres::statement::Statement::new (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (2 samples, 0.03%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)postgres_protocol::message::frontend::write_body (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)DYLD-STUB$$memcpy (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)tokio_postgres::query::encode (4 samples, 0.05%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (1 samples, 0.01%)tokio_postgres::client::InnerClient::send (1 samples, 0.01%)futures_channel::mpsc::channel (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (1 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (4 samples, 0.05%)tokio_postgres::client::Responses::poll_next (2 samples, 0.03%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::fmt::format::format_inner (1 samples, 0.01%)core::fmt::write (1 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (1 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)_realloc (1 samples, 0.01%)tokio_postgres::client::Responses::poll_next (2 samples, 0.03%)postgres_protocol::message::backend::Message::parse (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (1 samples, 0.01%)alloc::raw_vec::finish_grow (1 samples, 0.01%)tokio_postgres::prepare::encode (1 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (17 samples, 0.23%)tokio_postgres::client::Client::execute::_{{closure}} (17 samples, 0.23%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (5 samples, 0.07%)tokio_postgres::prepare::get_type::_{{closure}} (1 samples, 0.01%)torii::etl::decoder::DecoderId::new (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (704 samples, 9.37%)<torii::etl::..<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (29 samples, 0.39%)torii_common::felt_to_blob (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (5 samples, 0.07%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)core::hash::BuildHasher::hash_one (1 samples, 0.01%)core::ptr::drop_in_place<<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::{{closure}}> (1 samples, 0.01%)_free (1 samples, 0.01%)_xzm_free (6 samples, 0.08%)__bzero (2 samples, 0.03%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (8 samples, 0.11%)_xzm_xzone_madvise_batch (1 samples, 0.01%)xzm_reclaim_mark_free_locked (1 samples, 0.01%)xzm_reclaim_sync_and_resize (1 samples, 0.01%)mach_vm_reclaim_ring_resize (1 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (1 samples, 0.01%)mach_msg2_internal (1 samples, 0.01%)mach_msg2_trap (1 samples, 0.01%)torii::run::_{{closure}}::_{{closure}} (1,324 samples, 17.63%)torii::run::_{{closure}}::_..hashbrown::map::HashMap<K,V,S,A>::insert (3 samples, 0.04%)core::hash::BuildHasher::hash_one (3 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.03%)torii_erc1155::storage::Erc1155Storage::new::_{{closure}}::_{{closure}} (1 samples, 0.01%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (1 samples, 0.01%)tokio_postgres::error::DbError::parse (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (1 samples, 0.01%)_free (1 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (15 samples, 0.20%)_xzm_free (8 samples, 0.11%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (25 samples, 0.33%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (3 samples, 0.04%)_platform_memmove (13 samples, 0.17%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (17 samples, 0.23%)bytes::bytes_mut::shared_v_drop (3 samples, 0.04%)_xzm_free (3 samples, 0.04%)_platform_memset (2 samples, 0.03%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (17 samples, 0.23%)bytes::bytes_mut::BytesMut::split_to (3 samples, 0.04%)<deduplicated_symbol> (1 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<tokio_postgres::socket::Socket as tokio::io::async_read::AsyncRead>::poll_read (6 samples, 0.08%)__recvfrom (1,115 samples, 14.84%)__recvfrom<&std::net::tcp::TcpStream as std::io::Read>::read (1,126 samples, 14.99%)<&std::net::tcp::TcpStr..recv (3 samples, 0.04%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (1,137 samples, 15.14%)<&mio::net::tcp::stream..__recvfrom (8 samples, 0.11%)_tlv_get_addr (1 samples, 0.01%)tokio::runtime::io::registration::Registration::poll_ready (35 samples, 0.47%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (22 samples, 0.29%)tokio::io::poll_evented::PollEvented<E>::poll_read (1,178 samples, 15.68%)tokio::io::poll_evented:..tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.01%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (1,224 samples, 16.30%)<tokio_util::codec::frame..tokio_util::util::poll_buf::poll_read_buf (1,188 samples, 15.82%)tokio_util::util::poll_b..tokio::runtime::io::registration::Registration::poll_ready (1 samples, 0.01%)bytes::bytes_mut::BytesMut::advance_unchecked (2 samples, 0.03%)DYLD-STUB$$send (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (860 samples, 11.45%)<&std::net::tcp::..__sendto (856 samples, 11.40%)__sendto<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (866 samples, 11.53%)<&mio::net::tcp::..__sendto (4 samples, 0.05%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (887 samples, 11.81%)<tokio_util::codec..tokio::io::poll_evented::PollEvented<E>::poll_write (878 samples, 11.69%)tokio::io::poll_e..tokio::runtime::io::registration::Registration::poll_ready (7 samples, 0.09%)_tlv_get_addr (1 samples, 0.01%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (3 samples, 0.04%)<tracing_log::log_tracer::LogTracer as log::Log>::log (1 samples, 0.01%)tracing_log::dispatch_record (1 samples, 0.01%)tracing_log::dispatch_record::_{{closure}} (1 samples, 0.01%)<tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::event (1 samples, 0.01%)std::thread::local::LocalKey<T>::with (1 samples, 0.01%)<std::io::stdio::Stdout as std::io::Write>::write_all (1 samples, 0.01%)write (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)DYLD-STUB$$memcpy (1 samples, 0.01%)_platform_memmove (7 samples, 0.09%)DYLD-STUB$$_platform_bzero (1 samples, 0.01%)__bzero (4 samples, 0.05%)_xzm_free (29 samples, 0.39%)_platform_memset (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (4 samples, 0.05%)<std::sys::sync::mutex::pthread::Mutex as core::ops::drop::Drop>::drop (2 samples, 0.03%)_xzm_free (6 samples, 0.08%)_platform_memset (1 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.03%)_free (6 samples, 0.08%)DYLD-STUB$$_platform_bzero (2 samples, 0.03%)_xzm_free (13 samples, 0.17%)__bzero (2 samples, 0.03%)free (1 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (26 samples, 0.35%)xzm_malloc_zone_try_free_default (2 samples, 0.03%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (35 samples, 0.47%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (1 samples, 0.01%)free (1 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.04%)DYLD-STUB$$malloc (1 samples, 0.01%)__rustc::__rdl_alloc (1 samples, 0.01%)__rustc::__rust_alloc (3 samples, 0.04%)_malloc_zone_malloc (2 samples, 0.03%)_xzm_xzone_malloc (3 samples, 0.04%)_xzm_xzone_malloc_tiny (7 samples, 0.09%)futures_channel::mpsc::BoundedSenderInner<T>::poll_unparked (2 samples, 0.03%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (4 samples, 0.05%)std::sys::sync::once_box::OnceBox<T>::initialize (2 samples, 0.03%)std::sys::pal::unix::sync::mutex::Mutex::init (1 samples, 0.01%)pthread_mutex_init (1 samples, 0.01%)tokio::runtime::context::with_scheduler (1 samples, 0.01%)_tlv_get_addr (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (4 samples, 0.05%)tokio::runtime::context::with_scheduler (4 samples, 0.05%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (3 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (8 samples, 0.11%)tokio::runtime::task::state::State::transition_to_notified_by_val (2 samples, 0.03%)futures_channel::mpsc::Sender<T>::start_send (39 samples, 0.52%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (1 samples, 0.01%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (2,345 samples, 31.22%)<tokio_postgres::connection::Connection<S,T> as co..tokio::runtime::task::waker::wake_by_val (1 samples, 0.01%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (2,355 samples, 31.35%)torii_erc20::storage::Erc20Storage::new::_{{closure..futures_channel::mpsc::Sender<T>::start_send (1 samples, 0.01%)_free (1 samples, 0.01%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.03%)futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.03%)_xzm_free (1 samples, 0.01%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (2 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (55 samples, 0.73%)<&std::net::tcp::TcpStream as std::io::Read>::read (55 samples, 0.73%)__recvfrom (54 samples, 0.72%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (60 samples, 0.80%)tokio_util::util::poll_buf::poll_read_buf (58 samples, 0.77%)tokio::io::poll_evented::PollEvented<E>::poll_read (58 samples, 0.77%)tokio::runtime::io::registration::Registration::poll_ready (2 samples, 0.03%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.01%)DYLD-STUB$$send (1 samples, 0.01%)__sendto (50 samples, 0.67%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (54 samples, 0.72%)tokio::io::poll_evented::PollEvented<E>::poll_write (54 samples, 0.72%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (54 samples, 0.72%)<&std::net::tcp::TcpStream as std::io::Write>::write (53 samples, 0.71%)send (1 samples, 0.01%)_xzm_free (3 samples, 0.04%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (2 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (1 samples, 0.01%)_xzm_free (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (4,772 samples, 63.53%)<deduplicated_symbol>torii_erc721::storage::Erc721Storage::new::_{{closure}}::_{{closure}} (127 samples, 1.69%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (125 samples, 1.66%)futures_channel::mpsc::Sender<T>::start_send (2 samples, 0.03%)xzm_malloc_zone_malloc_type_malloc (1 samples, 0.01%)hyper::body::incoming::Sender::poll_ready (1 samples, 0.01%)hyper::body::incoming::Sender::poll_ready (2 samples, 0.03%)<deduplicated_symbol> (1 samples, 0.01%)pthread_mutex_unlock (1 samples, 0.01%)_xzm_xzone_malloc (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)pthread_mutex_unlock (1 samples, 0.01%)_tlv_get_addr (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.04%)tokio::runtime::context::with_scheduler (3 samples, 0.04%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (1 samples, 0.01%)hyper::body::incoming::Sender::try_send_data (7 samples, 0.09%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (5 samples, 0.07%)tokio::runtime::task::waker::wake_by_val (4 samples, 0.05%)tokio::runtime::task::state::State::transition_to_notified_by_val (1 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)DYLD-STUB$$tls_handshake_continue (1 samples, 0.01%)SSLRecordFreeInternal (1 samples, 0.01%)DYLD-STUB$$tls_record_parse_header (1 samples, 0.01%)_platform_memmove (3 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (1 samples, 0.01%)_xzm_xzone_malloc_tiny (1 samples, 0.01%)malloc_type_malloc (1 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (124 samples, 1.65%)__recvfrom (124 samples, 1.65%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (150 samples, 2.00%)<..__recvfrom (26 samples, 0.35%)_tlv_get_addr (1 samples, 0.01%)security_framework::secure_transport::read_func (155 samples, 2.06%)s..<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (154 samples, 2.05%)<..tokio::io::poll_evented::PollEvented<E>::poll_read (153 samples, 2.04%)t..tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (1 samples, 0.01%)ccgcm_finalize (2 samples, 0.03%)ccmode_gcm_finalize (2 samples, 0.03%)cc_cmp_safe_internal (2 samples, 0.03%)timingsafe_enable_if_supported (2 samples, 0.03%)ccgcm_inc_iv (4 samples, 0.05%)timingsafe_enable_if_supported (3 samples, 0.04%)ccgcm_reset (1 samples, 0.01%)memset_s (1 samples, 0.01%)ccaes_vng_gcm_decrypt (36 samples, 0.48%)Decrypt_Main_Loop (35 samples, 0.47%)timingsafe_enable_if_supported (1 samples, 0.01%)SSLDecryptRecord (45 samples, 0.60%)CCSymmAEADDecrypt (45 samples, 0.60%)ccgcm_update (38 samples, 0.51%)timingsafe_restore_if_supported (1 samples, 0.01%)_platform_memmove (11 samples, 0.15%)ccgcm_gmac (1 samples, 0.01%)timingsafe_restore_if_supported (1 samples, 0.01%)ccmode_gcm_init (1 samples, 0.01%)gcm_init (1 samples, 0.01%)timingsafe_enable_if_supported (2 samples, 0.03%)tls_record_decrypt (63 samples, 0.84%)ccgcm_init_with_iv (6 samples, 0.08%)timingsafe_restore_if_supported (3 samples, 0.04%)SSLRecordReadInternal (226 samples, 3.01%)SSL..tls_record_parse_header (1 samples, 0.01%)SSLDecodeInt (1 samples, 0.01%)<deduplicated_symbol> (238 samples, 3.17%)<de..SSLRead (236 samples, 3.14%)SSL.._platform_memmove (7 samples, 0.09%)__bzero (4 samples, 0.05%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (255 samples, 3.40%)<to.._platform_memset (11 samples, 0.15%)__bzero (2 samples, 0.03%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (259 samples, 3.45%)<hy.._platform_memset (2 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.05%)_xzm_xzone_find_and_malloc_from_freelist_chunk (1 samples, 0.01%)xzm_chunk_mark_used (1 samples, 0.01%)_xzm_reclaim_mark_used (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (1 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (277 samples, 3.69%)hype..hyper::proto::h1::decode::Decoder::decode (277 samples, 3.69%)hype..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (277 samples, 3.69%)<hyp..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (276 samples, 3.67%)hype..bytes::bytes_mut::BytesMut::reserve_inner (17 samples, 0.23%)_xzm_xzone_malloc_small_freelist (13 samples, 0.17%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (1 samples, 0.01%)bytes::bytes::Bytes::slice (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (2 samples, 0.03%)hyper::proto::h1::io::Buffered<T,B>::parse (2 samples, 0.03%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1 samples, 0.01%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)SSLRead (1 samples, 0.01%)SSLRecordReadInternal (1 samples, 0.01%)tls_record_decrypt (1 samples, 0.01%)SSLDecryptRecord (1 samples, 0.01%)CCSymmAEADDecrypt (1 samples, 0.01%)ccgcm_reset (1 samples, 0.01%)timingsafe_restore_if_supported (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_keep_alive (1 samples, 0.01%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (1 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (1 samples, 0.01%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (1 samples, 0.01%)<deduplicated_symbol> (1 samples, 0.01%)SSLRead (1 samples, 0.01%)SSLRecordReadInternal (1 samples, 0.01%)security_framework::secure_transport::read_func (1 samples, 0.01%)security_framework::secure_transport::translate_err (1 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::write_head (1 samples, 0.01%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::encode (1 samples, 0.01%)hyper::proto::h1::role::write_headers (1 samples, 0.01%)_platform_memmove (1 samples, 0.01%)<alloc::collections::vec_deque::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold (1 samples, 0.01%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (297 samples, 3.95%)<fut..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (297 samples, 3.95%)<fut..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (297 samples, 3.95%)<hyp..hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (296 samples, 3.94%)hype..hyper::proto::h1::io::Buffered<T,B>::poll_flush (5 samples, 0.07%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (4 samples, 0.05%)tokio_native_tls::TlsStream<S>::with_context (4 samples, 0.05%)SSLWrite (4 samples, 0.05%)SSLRecordServiceWriteQueueInternal (4 samples, 0.05%)security_framework::secure_transport::write_func (4 samples, 0.05%)tokio::io::poll_evented::PollEvented<E>::poll_write (4 samples, 0.05%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.05%)<&std::net::tcp::TcpStream as std::io::Write>::write (4 samples, 0.05%)__sendto (4 samples, 0.05%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (1 samples, 0.01%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (1 samples, 0.01%)reqwest::connect::with_timeout::_{{closure}} (1 samples, 0.01%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (1 samples, 0.01%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (1 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (1 samples, 0.01%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (1 samples, 0.01%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (1 samples, 0.01%)SSLHandshake (1 samples, 0.01%)SSLHandshakeProceed (1 samples, 0.01%)tls_handshake_continue (1 samples, 0.01%)SSLAdvanceHandshake (1 samples, 0.01%)SSLPrepareAndQueueMessage (1 samples, 0.01%)SSLEncodeKeyExchange (1 samples, 0.01%)sslEcdhCreateKey (1 samples, 0.01%)ccec_generate_key (1 samples, 0.01%)ccec_generate_key_fips_ws (1 samples, 0.01%)ccec_pairwise_consistency_check_ws (1 samples, 0.01%)ccec_sign_composite_msg_ws (1 samples, 0.01%)ccec_sign_composite_ws (1 samples, 0.01%)ccec_sign_internal_ws (1 samples, 0.01%)ccec_sign_internal_inner_ws (1 samples, 0.01%)ccec_mult_blinded_ws (1 samples, 0.01%)ccec_mult_default_ws (1 samples, 0.01%)ccec_mult_XYCZadd_ws (1 samples, 0.01%)ccn_mulmod_p256 (1 samples, 0.01%)tokio::runtime::task::state::State::transition_to_idle (3 samples, 0.04%)tokio::runtime::task::state::State::transition_to_running (7 samples, 0.09%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task (5,099 samples, 67.89%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::task::harness::Harness<T,S>::poll (5,087 samples, 67.73%)tokio::runtime::task::harness::Harness<T,S>::polltorii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (1 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::run (7,465 samples, 99.39%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (9 samples, 0.12%)all (7,511 samples, 100%)thread_start (7,474 samples, 99.51%)thread_start_pthread_start (7,474 samples, 99.51%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (7,474 samples, 99.51%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (7,474 samples, 99.51%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (7,474 samples, 99.51%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (7,474 samples, 99.51%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (7,474 samples, 99.51%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (7,474 samples, 99.51%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (7,474 samples, 99.51%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (7,471 samples, 99.47%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (7,471 samples, 99.47%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (7,471 samples, 99.47%)tokio::runtime::context::scoped::Scoped<T>::settokio::runtime::scheduler::multi_thread::worker::Context::run_task (1 samples, 0.01%) \ No newline at end of file diff --git a/bins/torii-tokens/flamegraph-inflight-4.svg b/bins/torii-tokens/flamegraph-inflight-4.svg new file mode 100644 index 0000000..da3aa13 --- /dev/null +++ b/bins/torii-tokens/flamegraph-inflight-4.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch dyld4::APIs::runAllInitializersForMain() (2 samples, 0.01%)dyld4::prepare(dyld4::APIs&, mach_o::Header const*) (5 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.01%)<futures_util::stream::try_stream::try_next::TryNext<St> as core::future::future::Future>::poll (2 samples, 0.01%)postgres_protocol::authentication::sasl::hi (6 samples, 0.04%)sha2::sha256::compress256 (5 samples, 0.03%)tokio_postgres::connect::_{{closure}} (11 samples, 0.07%)tokio_postgres::connect::connect_once::_{{closure}} (11 samples, 0.07%)tokio_postgres::connect_raw::connect_raw::_{{closure}} (11 samples, 0.07%)postgres_protocol::authentication::sasl::ScramSha256::update (9 samples, 0.05%)sha2::sha256::compress256 (3 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.01%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (3 samples, 0.02%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (3 samples, 0.02%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (3 samples, 0.02%)torii::etl::engine_db::EngineDb::new::_{{closure}} (5 samples, 0.03%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.01%)sha2::sha256::compress256 (2 samples, 0.01%)sqlx_core::pool::options::PoolOptions<DB>::connect_with::_{{closure}} (2 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.01%)sha2::sha256::compress256 (2 samples, 0.01%)torii::run::_{{closure}} (4 samples, 0.02%)torii::etl::engine_db::EngineDb::new::_{{closure}} (4 samples, 0.02%)sqlx_core::query::Query<DB,A>::execute::_{{closure}} (2 samples, 0.01%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.01%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect::_{{closure}} (2 samples, 0.01%)sqlx_core::any::connection::AnyConnection::connect_with_db::_{{closure}} (2 samples, 0.01%)sqlx_postgres::connection::establish::_<impl sqlx_postgres::connection::PgConnection>::establish::_{{closure}} (2 samples, 0.01%)sha2::sha256::compress256 (2 samples, 0.01%)start (36 samples, 0.22%)main (31 samples, 0.19%)std::rt::lang_start_internal (31 samples, 0.19%)std::rt::lang_start::_{{closure}} (31 samples, 0.19%)std::sys::backtrace::__rust_begin_short_backtrace (31 samples, 0.19%)torii_tokens::main (31 samples, 0.19%)tokio::runtime::park::CachedParkThread::block_on (31 samples, 0.19%)torii_tokens::run_indexer::_{{closure}} (31 samples, 0.19%)_nw_parameters_create_legacy_tcp_socket (2 samples, 0.01%)0x196305ff0 (2 samples, 0.01%)0x195ff2268 (2 samples, 0.01%)<(&str,u16) as std::net::socket_addr::ToSocketAddrs>::to_socket_addrs (3 samples, 0.02%)<std::sys::net::connection::socket::LookupHost as core::convert::TryFrom<(&str,u16)>>::try_from::_{{closure}} (3 samples, 0.02%)getaddrinfo (3 samples, 0.02%)si_addrinfo (3 samples, 0.02%)nw_path_libinfo_path_check (3 samples, 0.02%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (4 samples, 0.02%)DYLD-STUB$$pow (2 samples, 0.01%)pow (6 samples, 0.04%)DYLD-STUB$$mach_absolute_time (4 samples, 0.02%)mach_absolute_time (94 samples, 0.56%)clock_gettime_nsec_np (102 samples, 0.61%)std::sys::pal::unix::time::Timespec::now (113 samples, 0.68%)clock_gettime (113 samples, 0.68%)mach_absolute_time (7 samples, 0.04%)mach_absolute_time (27 samples, 0.16%)clock_gettime_nsec_np (37 samples, 0.22%)std::sys::pal::unix::time::Timespec::now (49 samples, 0.29%)clock_gettime (42 samples, 0.25%)std::time::Instant::elapsed (52 samples, 0.31%)std::time::Instant::now (2 samples, 0.01%)tokio::runtime::scheduler::multi_thread::idle::Idle::unpark_worker_by_id (13 samples, 0.08%)tokio::runtime::scheduler::multi_thread::queue::Steal<T>::steal_into (34 samples, 0.20%)tokio::runtime::scheduler::multi_thread::park::Inner::park_condvar (27 samples, 0.16%)parking_lot::condvar::Condvar::wait_until_internal (26 samples, 0.16%)_pthread_cond_wait (25 samples, 0.15%)__psynch_cvwait (24 samples, 0.14%)tokio::runtime::driver::Driver::park (2 samples, 0.01%)tokio::runtime::signal::Driver::process (5 samples, 0.03%)DYLD-STUB$$mach_absolute_time (3 samples, 0.02%)DYLD-STUB$$mach_timebase_info (3 samples, 0.02%)mach_absolute_time (177 samples, 1.06%)clock_gettime_nsec_np (213 samples, 1.28%)mach_timebase_info (6 samples, 0.04%)mach_absolute_time (14 samples, 0.08%)std::sys::pal::unix::time::Timespec::now (255 samples, 1.53%)clock_gettime (244 samples, 1.46%)mach_timebase_info (2 samples, 0.01%)std::time::Instant::duration_since (2 samples, 0.01%)std::time::Instant::now (8 samples, 0.05%)tokio::process::imp::orphan::OrphanQueueImpl<T>::reap_orphans (7 samples, 0.04%)kevent (225 samples, 1.35%)mio::poll::Poll::poll (3,797 samples, 22.74%)mio::poll::Poll::pollkevent (3,755 samples, 22.49%)kevent_tlv_get_addr (5 samples, 0.03%)tokio::runtime::context::with_scheduler (15 samples, 0.09%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (5 samples, 0.03%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (23 samples, 0.14%)tokio::runtime::task::raw::schedule (10 samples, 0.06%)tokio::runtime::io::driver::Driver::turn (4,256 samples, 25.49%)tokio::runtime::io::driver::Driver::turntokio::runtime::io::scheduled_io::ScheduledIo::wake (123 samples, 0.74%)tokio::runtime::task::waker::wake_by_val (67 samples, 0.40%)tokio::runtime::task::state::State::transition_to_notified_by_val (18 samples, 0.11%)tokio::runtime::signal::Driver::process (13 samples, 0.08%)tokio::runtime::time::wheel::Wheel::next_expiration (13 samples, 0.08%)tokio::runtime::time::wheel::level::Level::next_expiration (9 samples, 0.05%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (35 samples, 0.21%)tokio::runtime::time::wheel::Wheel::poll (16 samples, 0.10%)tokio::runtime::time::wheel::Wheel::next_expiration (11 samples, 0.07%)tokio::runtime::time::wheel::level::Level::next_expiration (7 samples, 0.04%)tokio::runtime::time::Driver::park_internal (4,612 samples, 27.63%)tokio::runtime::time::Driver::park_internaltokio::runtime::time::wheel::Wheel::next_expiration (14 samples, 0.08%)tokio::runtime::time::wheel::level::Level::next_expiration (10 samples, 0.06%)tokio::runtime::scheduler::multi_thread::park::Parker::park (4,781 samples, 28.64%)tokio::runtime::scheduler::multi_thread::park:..tokio::runtime::time::wheel::Wheel::next_expiration (2 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (6 samples, 0.04%)clock_gettime (5 samples, 0.03%)clock_gettime_nsec_np (4 samples, 0.02%)mach_absolute_time (3 samples, 0.02%)kevent (3 samples, 0.02%)mio::poll::Poll::poll (42 samples, 0.25%)kevent (41 samples, 0.25%)tokio::runtime::io::driver::Driver::turn (48 samples, 0.29%)tokio::runtime::scheduler::multi_thread::park::Parker::park_timeout (58 samples, 0.35%)tokio::runtime::time::Driver::park_internal (58 samples, 0.35%)tokio::runtime::time::_<impl tokio::runtime::time::handle::Handle>::process_at_time (2 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::park_internal (4,902 samples, 29.36%)tokio::runtime::scheduler::multi_thread::worker..tokio::runtime::time::Driver::park_internal (5 samples, 0.03%)<deduplicated_symbol> (8 samples, 0.05%)mio::waker::Waker::wake (6 samples, 0.04%)kevent (6 samples, 0.04%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (11 samples, 0.07%)_platform_memmove (2 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)kevent (3 samples, 0.02%)<deduplicated_symbol> (16 samples, 0.10%)mio::waker::Waker::wake (13 samples, 0.08%)kevent (13 samples, 0.08%)parking_lot::condvar::Condvar::notify_one_slow (4 samples, 0.02%)pthread_cond_signal (4 samples, 0.02%)__psynch_cvsignal (4 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (28 samples, 0.17%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (28 samples, 0.17%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (26 samples, 0.16%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (26 samples, 0.16%)futures_channel::mpsc::Receiver<T>::next_message (25 samples, 0.15%)tokio::runtime::task::waker::wake_by_val (21 samples, 0.13%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (21 samples, 0.13%)tokio::runtime::context::with_scheduler (21 samples, 0.13%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (30 samples, 0.18%)_platform_memmove (16 samples, 0.10%)encoding_rs::Encoding::decode_without_bom_handling (10 samples, 0.06%)encoding_rs::utf_8::utf8_valid_up_to (10 samples, 0.06%)_platform_memmove (13 samples, 0.08%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (16 samples, 0.10%)bytes::bytes_mut::shared_v_drop (2 samples, 0.01%)reqwest::async_impl::response::Response::text::_{{closure}} (74 samples, 0.44%)http_body_util::collected::Collected<B>::to_bytes (18 samples, 0.11%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (18 samples, 0.11%)_platform_memmove (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.04%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (3 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.02%)DYLD-STUB$$malloc (2 samples, 0.01%)DYLD-STUB$$memcpy (4 samples, 0.02%)_malloc_zone_malloc (4 samples, 0.02%)_platform_memmove (10 samples, 0.06%)_xzm_xzone_malloc (6 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (36 samples, 0.22%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)_realloc (11 samples, 0.07%)_malloc_zone_realloc (10 samples, 0.06%)xzm_realloc (10 samples, 0.06%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (68 samples, 0.41%)alloc::raw_vec::RawVec<T,A>::grow_one (17 samples, 0.10%)alloc::raw_vec::finish_grow (15 samples, 0.09%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)xzm_chunk_mark_used (2 samples, 0.01%)_xzm_reclaim_mark_used (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_str (8 samples, 0.05%)_xzm_xzone_malloc (4 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.04%)_xzm_xzone_malloc (2 samples, 0.01%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)xzm_chunk_mark_used (2 samples, 0.01%)_xzm_reclaim_mark_used (2 samples, 0.01%)_xzm_reclaim_mark_used_locked (2 samples, 0.01%)mach_vm_reclaim_try_cancel (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.13%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.03%)alloc::raw_vec::finish_grow (5 samples, 0.03%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (6 samples, 0.04%)_platform_memmove (2 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (32 samples, 0.19%)_platform_memcmp (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)__rustc::__rdl_alloc (3 samples, 0.02%)_xzm_reclaim_mark_used_locked (2 samples, 0.01%)mach_vm_reclaim_try_cancel (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (9 samples, 0.05%)_xzm_xzone_find_and_malloc_from_freelist_chunk (3 samples, 0.02%)xzm_chunk_mark_used (3 samples, 0.02%)_xzm_reclaim_mark_used (3 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (19 samples, 0.11%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (26 samples, 0.16%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (138 samples, 0.83%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (136 samples, 0.81%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (145 samples, 0.87%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)_platform_memmove (3 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (151 samples, 0.90%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (6 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (161 samples, 0.96%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (161 samples, 0.96%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (3 samples, 0.02%)_platform_memmove (7 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (13 samples, 0.08%)_xzm_xzone_malloc (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (27 samples, 0.16%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.03%)alloc::raw_vec::finish_grow (5 samples, 0.03%)_realloc (5 samples, 0.03%)_malloc_zone_realloc (5 samples, 0.03%)xzm_realloc (5 samples, 0.03%)DYLD-STUB$$memcpy (3 samples, 0.02%)_platform_memmove (4 samples, 0.02%)_xzm_xzone_malloc (6 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (20 samples, 0.12%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (7 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.04%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (4 samples, 0.02%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (3 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (9 samples, 0.05%)__rustc::__rdl_alloc (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (43 samples, 0.26%)alloc::raw_vec::RawVec<T,A>::grow_one (6 samples, 0.04%)alloc::raw_vec::finish_grow (6 samples, 0.04%)_realloc (6 samples, 0.04%)_malloc_zone_realloc (6 samples, 0.04%)xzm_realloc (6 samples, 0.04%)__rustc::__rdl_alloc (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_string (5 samples, 0.03%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (49 samples, 0.29%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (85 samples, 0.51%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (85 samples, 0.51%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (84 samples, 0.50%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (7 samples, 0.04%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (7 samples, 0.04%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::Edge>::insert_recursing (5 samples, 0.03%)alloc::collections::btree::node::Handle<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Mut,K,V,alloc::collections::btree::node::marker::Leaf>,alloc::collections::btree::node::marker::KV>::split (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (248 samples, 1.49%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (248 samples, 1.49%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (250 samples, 1.50%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (250 samples, 1.50%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (251 samples, 1.50%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (253 samples, 1.52%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (252 samples, 1.51%)_xzm_free (3 samples, 0.02%)_xzm_free (6 samples, 0.04%)_free (2 samples, 0.01%)_xzm_free (5 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (29 samples, 0.17%)core::ptr::drop_in_place<serde_core::private::content::Content> (21 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (10 samples, 0.06%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.20%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.20%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.20%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.20%)core::ptr::drop_in_place<serde_core::private::content::Content> (34 samples, 0.20%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (4 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (4 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (9 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.01%)_realloc (3 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (5 samples, 0.03%)alloc::raw_vec::finish_grow (5 samples, 0.03%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (6 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)_malloc_zone_realloc (3 samples, 0.02%)xzm_realloc (3 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.01%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed::has_next_key (3 samples, 0.02%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (8 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (9 samples, 0.05%)alloc::raw_vec::finish_grow (8 samples, 0.05%)_xzm_xzone_thread_cache_fill_and_malloc (2 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)xzm_chunk_mark_used (2 samples, 0.01%)_xzm_reclaim_mark_used (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (7 samples, 0.04%)__rustc::__rdl_alloc (2 samples, 0.01%)_xzm_free (3 samples, 0.02%)_realloc (8 samples, 0.05%)_malloc_zone_realloc (7 samples, 0.04%)xzm_realloc (7 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (15 samples, 0.09%)alloc::raw_vec::finish_grow (12 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (73 samples, 0.44%)serde_core::de::Deserializer::__deserialize_content_v1 (45 samples, 0.27%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (33 samples, 0.20%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (4 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (5 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (132 samples, 0.79%)serde_core::de::Deserializer::__deserialize_content_v1 (92 samples, 0.55%)<serde_json::de::MapAccess<R> as serde_core::de::MapAccess>::next_key_seed (3 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (19 samples, 0.11%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (175 samples, 1.05%)serde_core::de::Deserializer::__deserialize_content_v1 (160 samples, 0.96%)serde_json::de::Deserializer<R>::end_map (2 samples, 0.01%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (2 samples, 0.01%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (205 samples, 1.23%)serde_core::de::Deserializer::__deserialize_content_v1 (189 samples, 1.13%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (217 samples, 1.30%)serde_core::de::Deserializer::__deserialize_content_v1 (216 samples, 1.29%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (215 samples, 1.29%)serde_core::de::Deserializer::__deserialize_content_v1 (215 samples, 1.29%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (214 samples, 1.28%)serde_core::de::Deserializer::__deserialize_content_v1 (207 samples, 1.24%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (506 samples, 3.03%)<se..serde_core::de::Deserializer::__deserialize_content_v1 (218 samples, 1.31%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (218 samples, 1.31%)serde_core::de::Deserializer::__deserialize_content_v1 (218 samples, 1.31%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (585 samples, 3.50%)<st..serde_json::de::from_str (508 samples, 3.04%)ser..<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (508 samples, 3.04%)<&m..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (508 samples, 3.04%)<se..alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.01%)<&mut A as serde_core::de::MapAccess>::next_key_seed (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.03%)<deduplicated_symbol> (2 samples, 0.01%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (3 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)<deduplicated_symbol> (3 samples, 0.02%)_malloc_zone_malloc (3 samples, 0.02%)_platform_memmove (6 samples, 0.04%)_xzm_xzone_malloc (4 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (24 samples, 0.14%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (47 samples, 0.28%)serde::private::de::content::content_clone (40 samples, 0.24%)serde::private::de::content::content_clone (31 samples, 0.19%)serde::private::de::content::content_clone (3 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (67 samples, 0.40%)starknet_types_core::felt::Felt::from_hex (67 samples, 0.40%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (67 samples, 0.40%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (61 samples, 0.37%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (31 samples, 0.19%)_xzm_free (4 samples, 0.02%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (78 samples, 0.47%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (79 samples, 0.47%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (83 samples, 0.50%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (83 samples, 0.50%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (148 samples, 0.89%)starknet_types_core::felt::Felt::from_hex (145 samples, 0.87%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (142 samples, 0.85%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (131 samples, 0.78%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (72 samples, 0.43%)_xzm_free (7 samples, 0.04%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (163 samples, 0.98%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (162 samples, 0.97%)<starknet_core::types::serde_impls::NumAsHexVisitorU128 as serde_core::de::Visitor>::visit_str (2 samples, 0.01%)core::str::_<impl str>::trim_start_matches (2 samples, 0.01%)core::str::pattern::StrSearcher::new (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (7 samples, 0.04%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (176 samples, 1.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (176 samples, 1.05%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (312 samples, 1.87%)s..<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (3 samples, 0.02%)_platform_memmove (2 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (2 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.01%)<alloc::string::String as core::clone::Clone>::clone (5 samples, 0.03%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)<deduplicated_symbol> (3 samples, 0.02%)__rustc::__rdl_alloc (2 samples, 0.01%)_malloc_zone_malloc (3 samples, 0.02%)_platform_memmove (4 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (18 samples, 0.11%)_malloc_zone_malloc (2 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.01%)_xzm_xzone_malloc_freelist_outlined (3 samples, 0.02%)_xzm_xzone_malloc_tiny (4 samples, 0.02%)<deduplicated_symbol> (3 samples, 0.02%)DYLD-STUB$$malloc (2 samples, 0.01%)DYLD-STUB$$memcpy (3 samples, 0.02%)__rustc::__rdl_alloc (3 samples, 0.02%)_malloc_zone_malloc (5 samples, 0.03%)_platform_memmove (11 samples, 0.07%)serde::private::de::content::content_clone (76 samples, 0.46%)serde::private::de::content::content_clone (40 samples, 0.24%)<alloc::string::String as core::clone::Clone>::clone (39 samples, 0.23%)_xzm_xzone_malloc (8 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (110 samples, 0.66%)serde::private::de::content::content_clone (100 samples, 0.60%)serde::private::de::content::content_clone (94 samples, 0.56%)<serde::private::de::content::TagOrContentVisitor as serde_core::de::DeserializeSeed>::deserialize (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.07%)starknet_types_core::felt::Felt::from_hex (11 samples, 0.07%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (11 samples, 0.07%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (11 samples, 0.07%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (6 samples, 0.04%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66 samples, 0.40%)starknet_types_core::felt::Felt::from_hex (64 samples, 0.38%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (64 samples, 0.38%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (60 samples, 0.36%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (44 samples, 0.26%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (266 samples, 1.59%)starknet_types_core::felt::Felt::from_hex (264 samples, 1.58%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (262 samples, 1.57%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (239 samples, 1.43%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (123 samples, 0.74%)_free (3 samples, 0.02%)_xzm_free (15 samples, 0.09%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (305 samples, 1.83%)<.._xzm_xzone_malloc_tiny (9 samples, 0.05%)_xzm_free (11 samples, 0.07%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (321 samples, 1.92%)<.._free (3 samples, 0.02%)_xzm_free (8 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (404 samples, 2.42%)<s..serde::private::de::content::MapDeserializer<E>::end (5 samples, 0.03%)_xzm_free (2 samples, 0.01%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (412 samples, 2.47%)<s.._xzm_xzone_malloc_tiny (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (414 samples, 2.48%)<s..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (2 samples, 0.01%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (2 samples, 0.01%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (2 samples, 0.01%)_free (2 samples, 0.01%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (9 samples, 0.05%)serde::private::de::content::MapDeserializer<E>::end (3 samples, 0.02%)_xzm_free (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (864 samples, 5.18%)<serde..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (552 samples, 3.31%)sta..<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (439 samples, 2.63%)<s..<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (439 samples, 2.63%)<s..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (866 samples, 5.19%)<serde..<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (866 samples, 5.19%)<serde..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (870 samples, 5.21%)<serde.._xzm_free (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)_free (3 samples, 0.02%)_xzm_free (6 samples, 0.04%)_free (6 samples, 0.04%)_xzm_free (17 samples, 0.10%)_platform_memset (3 samples, 0.02%)_free (2 samples, 0.01%)_xzm_free (20 samples, 0.12%)_platform_memset (2 samples, 0.01%)DYLD-STUB$$free (4 samples, 0.02%)_free (3 samples, 0.02%)_xzm_free (24 samples, 0.14%)_xzm_xzone_madvise_batch (2 samples, 0.01%)xzm_reclaim_mark_free_locked (2 samples, 0.01%)mach_vm_reclaim_try_enter (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (111 samples, 0.66%)core::ptr::drop_in_place<serde_core::private::content::Content> (111 samples, 0.66%)core::ptr::drop_in_place<serde_core::private::content::Content> (109 samples, 0.65%)core::ptr::drop_in_place<serde_core::private::content::Content> (107 samples, 0.64%)core::ptr::drop_in_place<serde_core::private::content::Content> (96 samples, 0.58%)core::ptr::drop_in_place<serde_core::private::content::Content> (70 samples, 0.42%)core::ptr::drop_in_place<serde_core::private::content::Content> (46 samples, 0.28%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.02%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (8 samples, 0.05%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (8 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (5 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.01%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (12 samples, 0.07%)_xzm_free (9 samples, 0.05%)_platform_memset (4 samples, 0.02%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.01%)_xzm_xzone_malloc (3 samples, 0.02%)_xzm_xzone_malloc_tiny (6 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (43 samples, 0.26%)serde_core::de::Deserializer::__deserialize_content_v1 (13 samples, 0.08%)_xzm_free (3 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (78 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (55 samples, 0.33%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (97 samples, 0.58%)serde_core::de::Deserializer::__deserialize_content_v1 (84 samples, 0.50%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (127 samples, 0.76%)serde_core::de::Deserializer::__deserialize_content_v1 (114 samples, 0.68%)serde_json::value::de::SeqDeserializer::new (2 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (1,700 samples, 10.18%)<starknet_provi..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (1,700 samples, 10.18%)starknet_provid..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (1,114 samples, 6.67%)starknet_..serde_core::de::Deserializer::__deserialize_content_v1 (132 samples, 0.79%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (132 samples, 0.79%)serde_core::de::Deserializer::__deserialize_content_v1 (132 samples, 0.79%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (132 samples, 0.79%)serde_core::de::Deserializer::__deserialize_content_v1 (132 samples, 0.79%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (132 samples, 0.79%)serde_core::de::Deserializer::__deserialize_content_v1 (131 samples, 0.78%)_platform_memmove (2 samples, 0.01%)_platform_memmove (3 samples, 0.02%)_xzm_malloc_large_huge (2 samples, 0.01%)xzm_segment_group_alloc_chunk (2 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (2 samples, 0.01%)_xzm_segment_group_span_mark_smaller (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.01%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}}::_{{closure}} (1,722 samples, 10.32%)<torii::etl::ex..torii::etl::extractor::starknet_helpers::block_into_contexts (14 samples, 0.08%)alloc::raw_vec::RawVec<T,A>::grow_one (9 samples, 0.05%)alloc::raw_vec::finish_grow (9 samples, 0.05%)_realloc (9 samples, 0.05%)_malloc_zone_realloc (8 samples, 0.05%)xzm_realloc (7 samples, 0.04%)_tlv_get_addr (2 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (2 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (2 samples, 0.01%)tokio::net::tcp::stream::TcpStream::try_write (2 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (2 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.01%)__sendto (2 samples, 0.01%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (6 samples, 0.04%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (4 samples, 0.02%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (4 samples, 0.02%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (4 samples, 0.02%)tokio::runtime::io::registration::Registration::try_io (4 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (4 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (4 samples, 0.02%)__recvfrom (4 samples, 0.02%)sqlx_core::pool::connection::PoolConnection<DB>::return_to_pool::_{{closure}} (7 samples, 0.04%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (7 samples, 0.04%)tokio::runtime::task::core::TaskIdGuard::enter (8 samples, 0.05%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.01%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (2 samples, 0.01%)<tokio::sync::batch_semaphore::Acquire as core::future::future::Future>::poll (5 samples, 0.03%)tokio::sync::batch_semaphore::Semaphore::add_permits_locked (3 samples, 0.02%)tokio::sync::batch_semaphore::Semaphore::release (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)_xzm_free (3 samples, 0.02%)_malloc_zone_realloc (10 samples, 0.06%)xzm_realloc (9 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (15 samples, 0.09%)alloc::raw_vec::finish_grow (11 samples, 0.07%)_realloc (11 samples, 0.07%)<alloc::string::String as core::fmt::Write>::write_str (18 samples, 0.11%)alloc::fmt::format::format_inner (35 samples, 0.21%)core::fmt::write (34 samples, 0.20%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (31 samples, 0.19%)core::fmt::write (27 samples, 0.16%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (27 samples, 0.16%)core::fmt::write (24 samples, 0.14%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (24 samples, 0.14%)torii_erc20::decoder::Erc20Decoder::decode_approval::_{{closure}} (40 samples, 0.24%)torii::etl::envelope::Envelope::new (2 samples, 0.01%)chrono::offset::utc::Utc::now (2 samples, 0.01%)std::sys::pal::unix::time::Timespec::now (2 samples, 0.01%)clock_gettime (2 samples, 0.01%)gettimeofday (2 samples, 0.01%)__commpage_gettimeofday_internal (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)_xzm_xzone_malloc_tiny (4 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)_malloc_zone_realloc (7 samples, 0.04%)xzm_realloc (7 samples, 0.04%)xzm_malloc_zone_size (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (15 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (14 samples, 0.08%)alloc::raw_vec::finish_grow (14 samples, 0.08%)_realloc (13 samples, 0.08%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)core::fmt::Formatter::pad_integral (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)_xzm_xzone_malloc (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (9 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (9 samples, 0.05%)alloc::raw_vec::finish_grow (9 samples, 0.05%)core::fmt::Formatter::pad_integral (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)_xzm_free (3 samples, 0.02%)_malloc_zone_realloc (17 samples, 0.10%)xzm_realloc (14 samples, 0.08%)_xzm_xzone_malloc (2 samples, 0.01%)xzm_malloc_zone_size (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (25 samples, 0.15%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (23 samples, 0.14%)alloc::raw_vec::finish_grow (23 samples, 0.14%)_realloc (23 samples, 0.14%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (51 samples, 0.31%)core::fmt::write (42 samples, 0.25%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (38 samples, 0.23%)core::fmt::Formatter::pad_integral (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)alloc::fmt::format::format_inner (82 samples, 0.49%)core::fmt::write (82 samples, 0.49%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (77 samples, 0.46%)core::fmt::write (54 samples, 0.32%)core::fmt::write (2 samples, 0.01%)core::hash::BuildHasher::hash_one (3 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.02%)hashbrown::map::HashMap<K,V,S,A>::insert (11 samples, 0.07%)hashbrown::raw::RawTable<T,A>::reserve_rehash (5 samples, 0.03%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (147 samples, 0.88%)torii_erc20::decoder::Erc20Decoder::decode_transfer::_{{closure}} (104 samples, 0.62%)torii::etl::envelope::Envelope::new (3 samples, 0.02%)chrono::offset::utc::Utc::now (3 samples, 0.02%)std::sys::pal::unix::time::Timespec::now (3 samples, 0.02%)clock_gettime (3 samples, 0.02%)gettimeofday (3 samples, 0.02%)__commpage_gettimeofday_internal (3 samples, 0.02%)mach_absolute_time (3 samples, 0.02%)<torii_erc20::decoder::Erc20Decoder as torii::etl::decoder::Decoder>::decode_event (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)alloc::fmt::format::format_inner (9 samples, 0.05%)core::fmt::write (7 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (7 samples, 0.04%)core::fmt::write (3 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (3 samples, 0.02%)core::fmt::write (3 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (3 samples, 0.02%)<torii_erc721::decoder::Erc721Decoder as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (11 samples, 0.07%)_xzm_free (8 samples, 0.05%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode_event::_{{closure}} (187 samples, 1.12%)torii::etl::decoder::context::DecoderContext::decode_with_decoders::_{{closure}} (169 samples, 1.01%)_xzm_free (4 samples, 0.02%)<torii::etl::decoder::context::DecoderContext as torii::etl::decoder::Decoder>::decode::_{{closure}} (197 samples, 1.18%)_platform_memmove (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)kevent (2 samples, 0.01%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (4 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (4 samples, 0.02%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (3 samples, 0.02%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (3 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (3 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (3 samples, 0.02%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.02%)tokio::runtime::context::with_scheduler (3 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (7 samples, 0.04%)http_body_util::collected::Collected<B>::to_bytes (2 samples, 0.01%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (2 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (11 samples, 0.07%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.07%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (14 samples, 0.08%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.08%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (14 samples, 0.08%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (14 samples, 0.08%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)_xzm_xzone_malloc_small_freelist (2 samples, 0.01%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (7 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (7 samples, 0.04%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (7 samples, 0.04%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (6 samples, 0.04%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (23 samples, 0.14%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.13%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (22 samples, 0.13%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (22 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.13%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (22 samples, 0.13%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (22 samples, 0.13%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (5 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (5 samples, 0.03%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (3 samples, 0.02%)alloc::raw_vec::finish_grow (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (8 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.02%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (14 samples, 0.08%)serde_core::de::Deserializer::__deserialize_content_v1 (10 samples, 0.06%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (22 samples, 0.13%)serde_core::de::Deserializer::__deserialize_content_v1 (18 samples, 0.11%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (3 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (63 samples, 0.38%)serde_json::de::from_str (54 samples, 0.32%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (54 samples, 0.32%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (54 samples, 0.32%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (54 samples, 0.32%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (25 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (25 samples, 0.15%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (25 samples, 0.15%)serde_core::de::Deserializer::__deserialize_content_v1 (24 samples, 0.14%)_xzm_xzone_malloc (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.03%)serde::private::de::content::content_clone (5 samples, 0.03%)serde::private::de::content::content_clone (5 samples, 0.03%)<starknet_core::types::codegen::InvokeTransactionV1Content as serde_core::de::Deserialize>::deserialize (5 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (5 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (5 samples, 0.03%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (5 samples, 0.03%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.03%)starknet_types_core::felt::Felt::from_hex (5 samples, 0.03%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (5 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (5 samples, 0.03%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (3 samples, 0.02%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionContent>::deserialize (19 samples, 0.11%)<starknet_core::types::codegen::InvokeTransactionV3Content as serde_core::de::Deserialize>::deserialize (9 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (9 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (9 samples, 0.05%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (9 samples, 0.05%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (8 samples, 0.05%)starknet_types_core::felt::Felt::from_hex (8 samples, 0.05%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (8 samples, 0.05%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (7 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (5 samples, 0.03%)serde::private::de::content::content_clone (5 samples, 0.03%)serde::private::de::content::content_clone (5 samples, 0.03%)serde::private::de::content::content_clone (3 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (6 samples, 0.04%)starknet_types_core::felt::Felt::from_hex (6 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (6 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (6 samples, 0.04%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (4 samples, 0.02%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (16 samples, 0.10%)starknet_types_core::felt::Felt::from_hex (16 samples, 0.10%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (16 samples, 0.10%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (15 samples, 0.09%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (7 samples, 0.04%)<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (17 samples, 0.10%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (19 samples, 0.11%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (27 samples, 0.16%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (27 samples, 0.16%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (27 samples, 0.16%)_xzm_free (2 samples, 0.01%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (53 samples, 0.32%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (53 samples, 0.32%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (53 samples, 0.32%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (53 samples, 0.32%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::TransactionReceipt>::deserialize (34 samples, 0.20%)<starknet_core::types::codegen::InvokeTransactionReceipt as serde_core::de::Deserialize>::deserialize (29 samples, 0.17%)<serde::private::de::content::ContentDeserializer<E> as serde_core::de::Deserializer>::deserialize_map (29 samples, 0.17%)_xzm_free (2 samples, 0.01%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (6 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (3 samples, 0.02%)alloc::collections::btree::map::IntoIter<K,V,A>::dying_next (3 samples, 0.02%)_xzm_xzone_madvise_batch (3 samples, 0.02%)xzm_reclaim_mark_free_locked (2 samples, 0.01%)xzm_reclaim_sync_and_resize (2 samples, 0.01%)mach_vm_reclaim_ring_resize (2 samples, 0.01%)mach_vm_deferred_reclamation_buffer_resize (2 samples, 0.01%)mach_msg2_trap (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (5 samples, 0.03%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.01%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (136 samples, 0.81%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (136 samples, 0.81%)starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::MaybePreConfirmedBlockWithReceipts>::deserialize (73 samples, 0.44%)serde_core::de::Deserializer::__deserialize_content_v1 (12 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (12 samples, 0.07%)serde_core::de::Deserializer::__deserialize_content_v1 (12 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (11 samples, 0.07%)serde_core::de::Deserializer::__deserialize_content_v1 (11 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.07%)serde_core::de::Deserializer::__deserialize_content_v1 (11 samples, 0.07%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (11 samples, 0.07%)serde_core::de::Deserializer::__deserialize_content_v1 (7 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.04%)Security::KeychainCore::Certificate::publicKey() (2 samples, 0.01%)Security::KeychainCore::Certificate::copyFirstFieldValue(cssm_data const&) (2 samples, 0.01%)SSLHandshake (6 samples, 0.04%)SSLHandshakeProceed (6 samples, 0.04%)tls_handshake_process (4 samples, 0.02%)SSLProcessHandshakeRecordInner (4 samples, 0.02%)tls_handshake_message_callback (4 samples, 0.02%)tls_helper_set_peer_pubkey (4 samples, 0.02%)SecTrustCopyPublicKey (4 samples, 0.02%)SecCertificateCopyPublicKey$LEGACYMAC (4 samples, 0.02%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (8 samples, 0.05%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (8 samples, 0.05%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (8 samples, 0.05%)security_framework::trust::SecTrust::evaluate_with_error (2 samples, 0.01%)SecTrustEvaluateInternal (2 samples, 0.01%)SecTrustEvaluateIfNecessary (2 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.01%)_dispatch_client_callout (2 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke (2 samples, 0.01%)_os_activity_initiate_impl (2 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke_2 (2 samples, 0.01%)SecOSStatusWith (2 samples, 0.01%)__SecTrustEvaluateIfNecessary_block_invoke_3 (2 samples, 0.01%)securityd_send_sync_and_do (2 samples, 0.01%)__handle_trust_evaluate_xpc_block_invoke_2 (2 samples, 0.01%)SecXPCDictionaryCopyDictionaryOptional (2 samples, 0.01%)SecXPCDictionaryCopyDictionaryAndPossiblyMutateMessage (2 samples, 0.01%)SecXPCDictionaryCopyPListAndPossiblyMutateMessage (2 samples, 0.01%)der_decode_plist (2 samples, 0.01%)der_decode_dictionary (2 samples, 0.01%)der_decode_plist (2 samples, 0.01%)der_decode_date (2 samples, 0.01%)der_decode_commontime_body (2 samples, 0.01%)SecCFCalendarDoWithZuluCalendar (2 samples, 0.01%)_dispatch_lane_barrier_sync_invoke_and_complete (2 samples, 0.01%)_dispatch_client_callout (2 samples, 0.01%)__SecCFCalendarDoWithZuluCalendar_block_invoke (2 samples, 0.01%)_dispatch_once_callout (2 samples, 0.01%)_dispatch_client_callout (2 samples, 0.01%)__SecCFCalendarGetZulu_block_invoke (2 samples, 0.01%)@objc static NSCalendar._newCalendarWithIdentifier(_:) (2 samples, 0.01%)specialized static NSCalendar._newCalendarWithIdentifier(_:) (2 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (9 samples, 0.05%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.05%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (9 samples, 0.05%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (9 samples, 0.05%)reqwest::connect::with_timeout::_{{closure}} (9 samples, 0.05%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (9 samples, 0.05%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (9 samples, 0.05%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::block_number::_{{closure}} (10 samples, 0.06%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_request::_{{closure}} (10 samples, 0.06%)<reqwest::async_impl::client::PendingRequest as core::future::future::Future>::poll (10 samples, 0.06%)<tower::retry::future::ResponseFuture<P,S,Request> as core::future::future::Future>::poll (10 samples, 0.06%)<reqwest::async_impl::client::HyperService as tower_service::Service<http::request::Request<reqwest::async_impl::body::Body>>>::call::_{{closure}} (10 samples, 0.06%)hyper_util::client::legacy::client::Client<C,B>::send_request::_{{closure}} (10 samples, 0.06%)<torii::etl::extractor::block_range::BlockRangeExtractor as torii::etl::extractor::Extractor>::extract::_{{closure}} (147 samples, 0.88%)<deduplicated_symbol> (14 samples, 0.08%)mio::waker::Waker::wake (13 samples, 0.08%)kevent (13 samples, 0.08%)<http_body_util::combinators::collect::Collect<T> as core::future::future::Future>::poll (21 samples, 0.13%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (21 samples, 0.13%)<http_body_util::combinators::map_err::MapErr<B,F> as http_body::Body>::poll_frame (21 samples, 0.13%)<hyper::body::incoming::Incoming as http_body::Body>::poll_frame (21 samples, 0.13%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (21 samples, 0.13%)futures_channel::mpsc::Receiver<T>::next_message (21 samples, 0.13%)tokio::runtime::task::waker::wake_by_val (21 samples, 0.13%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (21 samples, 0.13%)tokio::runtime::context::with_scheduler (21 samples, 0.13%)parking_lot::condvar::Condvar::notify_one_slow (7 samples, 0.04%)pthread_cond_signal (7 samples, 0.04%)__psynch_cvsignal (6 samples, 0.04%)_platform_memmove (14 samples, 0.08%)encoding_rs::Encoding::decode_without_bom_handling (8 samples, 0.05%)encoding_rs::utf_8::utf8_valid_up_to (8 samples, 0.05%)_platform_memmove (13 samples, 0.08%)_xzm_free_outlined (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put (19 samples, 0.11%)bytes::bytes_mut::shared_v_drop (3 samples, 0.02%)reqwest::async_impl::response::Response::text::_{{closure}} (65 samples, 0.39%)http_body_util::collected::Collected<B>::to_bytes (21 samples, 0.13%)<http_body_util::util::BufList<T> as bytes::buf::buf_impl::Buf>::copy_to_bytes (21 samples, 0.13%)<deduplicated_symbol> (8 samples, 0.05%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (3 samples, 0.02%)_malloc_zone_malloc (9 samples, 0.05%)_platform_memmove (21 samples, 0.13%)_xzm_xzone_malloc (9 samples, 0.05%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (66 samples, 0.40%)_xzm_xzone_thread_cache_fill_and_malloc (7 samples, 0.04%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.02%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (3 samples, 0.02%)alloc::collections::btree::map::BTreeMap<K,V,A>::insert (2 samples, 0.01%)alloc::collections::btree::map::entry::VacantEntry<K,V,A>::insert_entry (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)_platform_memmove (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (86 samples, 0.52%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (86 samples, 0.52%)<serde_json::value::de::<impl serde_core::de::Deserialize for serde_json::value::Value>::deserialize::ValueVisitor as serde_core::de::Visitor>::visit_map (86 samples, 0.52%)<serde::private::de::content::MapRefDeserializer<E> as serde_core::de::MapAccess>::next_entry_seed (86 samples, 0.52%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (86 samples, 0.52%)alloc::raw_vec::RawVec<T,A>::grow_one (4 samples, 0.02%)alloc::raw_vec::finish_grow (4 samples, 0.02%)_realloc (4 samples, 0.02%)_malloc_zone_realloc (4 samples, 0.02%)xzm_realloc (4 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (8 samples, 0.05%)core::ptr::drop_in_place<serde_core::private::content::Content> (7 samples, 0.04%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.02%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed::has_next_element (9 samples, 0.05%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (78 samples, 0.47%)serde_core::de::Deserializer::__deserialize_content_v1 (66 samples, 0.40%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (61 samples, 0.37%)<serde_json::read::StrRead as serde_json::read::Read>::parse_str (8 samples, 0.05%)_platform_memmove (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (89 samples, 0.53%)serde_core::de::Deserializer::__deserialize_content_v1 (89 samples, 0.53%)<serde_json::de::SeqAccess<R> as serde_core::de::SeqAccess>::next_element_seed (184 samples, 1.10%)serde_core::de::Deserializer::__deserialize_content_v1 (90 samples, 0.54%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (90 samples, 0.54%)serde_core::de::Deserializer::__deserialize_content_v1 (90 samples, 0.54%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (251 samples, 1.50%)serde_json::de::from_str (185 samples, 1.11%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (185 samples, 1.11%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (185 samples, 1.11%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (510 samples, 3.05%)<la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (482 samples, 2.89%)la..lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex_unchecked (257 samples, 1.54%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (520 samples, 3.11%)<se..<serde_with::de::impls::<impl serde_with::de::DeserializeAs<alloc::vec::Vec<T>> for alloc::vec::Vec<U>>::deserialize_as::SeqVisitor<T,U> as serde_core::de::Visitor>::visit_seq (520 samples, 3.11%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (515 samples, 3.08%)<se..starknet_types_core::felt::Felt::from_hex (512 samples, 3.07%)sta..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (524 samples, 3.14%)<se..<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (4 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_seq (4 samples, 0.02%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (4 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_struct (3 samples, 0.02%)<serde::private::de::content::ContentRefDeserializer<E> as serde_core::de::Deserializer>::deserialize_any (3 samples, 0.02%)starknet_types_core::felt::Felt::from_hex (3 samples, 0.02%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::from_hex (3 samples, 0.02%)lambdaworks_math::unsigned_integer::element::UnsignedInteger<_>::from_hex (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)_free (8 samples, 0.05%)__bzero (2 samples, 0.01%)_xzm_free (18 samples, 0.11%)mach_vm_reclaim_try_enter (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)_xzm_xzone_madvise_batch (3 samples, 0.02%)xzm_reclaim_mark_free_locked (3 samples, 0.02%)core::ptr::drop_in_place<serde_core::private::content::Content> (37 samples, 0.22%)core::ptr::drop_in_place<serde_core::private::content::Content> (35 samples, 0.21%)core::ptr::drop_in_place<serde_core::private::content::Content> (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (2 samples, 0.01%)serde_core::de::Deserializer::__deserialize_content_v1 (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (15 samples, 0.09%)serde_core::de::Deserializer::__deserialize_content_v1 (3 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (835 samples, 5.00%)<stark..starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (835 samples, 5.00%)starkn..starknet_core::types::_::_<impl serde_core::de::Deserialize for starknet_core::types::ContractClass>::deserialize (582 samples, 3.49%)sta..serde_core::de::Deserializer::__deserialize_content_v1 (21 samples, 0.13%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (21 samples, 0.13%)serde_core::de::Deserializer::__deserialize_content_v1 (21 samples, 0.13%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.02%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.03%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (5 samples, 0.03%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (5 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (5 samples, 0.03%)sqlx_postgres::connection::stream::PgStream::recv_unchecked::_{{closure}} (5 samples, 0.03%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (5 samples, 0.03%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (5 samples, 0.03%)tokio::runtime::io::registration::Registration::try_io (5 samples, 0.03%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (5 samples, 0.03%)<&std::net::tcp::TcpStream as std::io::Read>::read (5 samples, 0.03%)__recvfrom (5 samples, 0.03%)<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next (8 samples, 0.05%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as futures_core::stream::Stream>::poll_next (8 samples, 0.05%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (2 samples, 0.01%)sqlx_core::net::socket::buffered::BufferedSocket<S>::flush::_{{closure}} (2 samples, 0.01%)<sqlx_core::net::socket::Write<S> as core::future::future::Future>::poll (2 samples, 0.01%)tokio::net::tcp::stream::TcpStream::try_write (2 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (2 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (2 samples, 0.01%)__sendto (2 samples, 0.01%)<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll (16 samples, 0.10%)<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll (16 samples, 0.10%)sqlx_core::pool::Pool<DB>::acquire::_{{closure}} (7 samples, 0.04%)sqlx_core::pool::inner::PoolInner<DB>::acquire::_{{closure}}::_{{closure}} (7 samples, 0.04%)<sqlx_postgres::connection::PgConnection as sqlx_core::connection::Connection>::ping::_{{closure}} (6 samples, 0.04%)sqlx_postgres::connection::PgConnection::wait_until_ready::_{{closure}} (6 samples, 0.04%)sqlx_postgres::connection::stream::PgStream::recv::_{{closure}} (4 samples, 0.02%)<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll (3 samples, 0.02%)sqlx_core::rt::rt_tokio::socket::_<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::try_read (3 samples, 0.02%)tokio::runtime::io::registration::Registration::try_io (3 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (3 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (3 samples, 0.02%)__recvfrom (3 samples, 0.02%)<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll (18 samples, 0.11%)<deduplicated_symbol> (18 samples, 0.11%)<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next (17 samples, 0.10%)torii::etl::engine_db::EngineDb::set_contract_decoders::_{{closure}} (20 samples, 0.12%)core::ptr::drop_in_place<starknet_core::types::codegen::FlattenedSierraClass> (2 samples, 0.01%)xzm_segment_group_free_chunk (2 samples, 0.01%)_xzm_segment_group_span_mark_free (2 samples, 0.01%)_xzm_reclaim_mark_free (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.01%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (4 samples, 0.02%)serde_core::de::Deserializer::__deserialize_content_v1 (4 samples, 0.02%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (4 samples, 0.02%)<serde::private::de::content::TaggedContentVisitor<T> as serde_core::de::Visitor>::visit_map (8 samples, 0.05%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_seq (6 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.04%)<serde::private::de::content::ContentVisitor as serde_core::de::Visitor>::visit_map (6 samples, 0.04%)serde_core::de::Deserializer::__deserialize_content_v1 (6 samples, 0.04%)torii::etl::extractor::starknet_helpers::ContractAbi::from_contract_class (13 samples, 0.08%)serde_json::de::from_trait (11 samples, 0.07%)<&mut serde_json::de::Deserializer<R> as serde_core::de::Deserializer>::deserialize_seq (11 samples, 0.07%)<serde_core::de::impls::<impl serde_core::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde_core::de::Visitor>::visit_seq (11 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEntry>::deserialize (11 samples, 0.07%)starknet_core::types::contract::_::_<impl serde_core::de::Deserialize for starknet_core::types::contract::AbiEvent>::deserialize (2 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (2 samples, 0.01%)alloc::fmt::format::format_inner (2 samples, 0.01%)core::fmt::write (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)<torii_erc1155::identification::Erc1155Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (10 samples, 0.06%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (7 samples, 0.04%)alloc::fmt::format::format_inner (5 samples, 0.03%)core::fmt::write (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)torii::etl::extractor::starknet_helpers::ContractAbi::has_event (2 samples, 0.01%)alloc::fmt::format::format_inner (2 samples, 0.01%)core::fmt::write (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)<torii_erc20::identification::Erc20Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (12 samples, 0.07%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (9 samples, 0.05%)alloc::fmt::format::format_inner (5 samples, 0.03%)core::fmt::write (4 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)<torii::etl::identification::registry::ContractRegistry as torii::etl::identification::registry::ContractIdentifier>::identify_contracts::_{{closure}} (908 samples, 5.44%)<torii:..torii::etl::identification::registry::ContractRegistry::identify_contracts::_{{closure}} (908 samples, 5.44%)torii::..torii::etl::identification::registry::ContractRegistry::run_rules (36 samples, 0.22%)<torii_erc721::identification::Erc721Rule as torii::etl::identification::rule::IdentificationRule>::identify_by_abi (14 samples, 0.08%)torii::etl::extractor::starknet_helpers::ContractAbi::has_function (11 samples, 0.07%)alloc::fmt::format::format_inner (9 samples, 0.05%)core::fmt::write (8 samples, 0.05%)<alloc::string::String as core::fmt::Write>::write_str (6 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.03%)alloc::raw_vec::finish_grow (4 samples, 0.02%)_realloc (4 samples, 0.02%)xzm_malloc_zone_size (3 samples, 0.02%)<torii_erc1155::sink::Erc1155Sink as torii::etl::sink::Sink>::process::_{{closure}} (8 samples, 0.05%)torii::etl::decoder::DecoderId::new (6 samples, 0.04%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.03%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (3 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.01%)xzm_realloc (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (9 samples, 0.05%)alloc::fmt::format::format_inner (9 samples, 0.05%)core::fmt::write (9 samples, 0.05%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (9 samples, 0.05%)core::fmt::write (6 samples, 0.04%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (5 samples, 0.03%)core::fmt::write (4 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)_malloc_zone_realloc (2 samples, 0.01%)serde_core::ser::Serializer::collect_seq (16 samples, 0.10%)starknet_providers::jsonrpc::transports::http::_::_<impl serde_core::ser::Serialize for starknet_providers::jsonrpc::transports::http::JsonRpcRequest<T>>::serialize (16 samples, 0.10%)starknet_providers::provider::_::_<impl serde_core::ser::Serialize for starknet_providers::provider::ProviderRequestData>::serialize (16 samples, 0.10%)<starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::_::_<impl serde_core::ser::Serialize for <starknet_core::types::codegen::CallRequest as serde_core::ser::Serialize>::serialize::AsObject>::serialize (16 samples, 0.10%)starknet_core::types::codegen::_::_<impl serde_core::ser::Serialize for starknet_core::types::codegen::FunctionCall>::serialize (16 samples, 0.10%)serde_core::ser::Serializer::collect_seq (6 samples, 0.04%)<deduplicated_symbol> (6 samples, 0.04%)<starknet_core::serde::unsigned_field_element::UfeHex as serde_with::ser::SerializeAs<starknet_types_core::felt::Felt>>::serialize_as (6 samples, 0.04%)alloc::fmt::format::format_inner (6 samples, 0.04%)core::fmt::write (6 samples, 0.04%)starknet_types_core::felt::alloc_impls::_<impl core::fmt::LowerHex for starknet_types_core::felt::Felt>::fmt (5 samples, 0.03%)core::fmt::write (4 samples, 0.02%)<lambdaworks_math::unsigned_integer::element::UnsignedInteger<_> as core::fmt::Display>::fmt (4 samples, 0.02%)core::fmt::write (3 samples, 0.02%)core::fmt::num::_<impl core::fmt::LowerHex for i64>::fmt (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)<starknet_providers::jsonrpc::transports::http::HttpTransport as starknet_providers::jsonrpc::transports::JsonRpcTransport>::send_requests::_{{closure}} (22 samples, 0.13%)_platform_memmove (3 samples, 0.02%)<starknet_providers::jsonrpc::JsonRpcClient<T> as starknet_providers::provider::Provider>::batch_requests::_{{closure}} (31 samples, 0.19%)starknet_providers::jsonrpc::JsonRpcClient<T>::send_requests::_{{closure}} (30 samples, 0.18%)serde_json::value::de::_<impl serde_core::de::Deserializer for serde_json::value::Value>::deserialize_seq (2 samples, 0.01%)_free (3 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.01%)_xzm_free (10 samples, 0.06%)core::hash::BuildHasher::hash_one (9 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (3 samples, 0.02%)_xzm_free (6 samples, 0.04%)_xzm_free (4 samples, 0.02%)futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (11 samples, 0.07%)futures_channel::mpsc::channel (7 samples, 0.04%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (29 samples, 0.17%)tokio_postgres::client::InnerClient::with_buf (14 samples, 0.08%)postgres_protocol::message::frontend::write_body (9 samples, 0.05%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.03%)alloc::sync::Arc<T,A>::drop_slow (40 samples, 0.24%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (35 samples, 0.21%)_xzm_free (3 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (49 samples, 0.29%)core::hash::BuildHasher::hash_one (10 samples, 0.06%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (6 samples, 0.04%)_xzm_malloc_large_huge (2 samples, 0.01%)xzm_segment_group_alloc_chunk (2 samples, 0.01%)_xzm_segment_group_find_and_allocate_chunk (2 samples, 0.01%)_xzm_segment_group_span_mark_smaller (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (13 samples, 0.08%)hashbrown::raw::RawTable<T,A>::reserve_rehash (3 samples, 0.02%)tokio_postgres::client::Client::query_opt::_{{closure}} (4 samples, 0.02%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (3 samples, 0.02%)tokio_postgres::prepare::encode (3 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (4 samples, 0.02%)_xzm_free (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (3 samples, 0.02%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.01%)_xzm_xzone_malloc_tiny (12 samples, 0.07%)tokio::runtime::context::with_scheduler (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (21 samples, 0.13%)tokio::runtime::task::waker::wake_by_val (3 samples, 0.02%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (3 samples, 0.02%)<deduplicated_symbol> (6 samples, 0.04%)_xzm_xzone_malloc (5 samples, 0.03%)tokio_postgres::client::InnerClient::send (43 samples, 0.26%)futures_channel::mpsc::channel (18 samples, 0.11%)_xzm_xzone_malloc_tiny (5 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.03%)bytes::bytes_mut::BytesMut::freeze (3 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (71 samples, 0.43%)tokio_postgres::client::InnerClient::with_buf (22 samples, 0.13%)postgres_protocol::message::frontend::write_body (6 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (4 samples, 0.02%)_platform_memmove (2 samples, 0.01%)_xzm_free (26 samples, 0.16%)mach_absolute_time (12 samples, 0.07%)alloc::sync::Arc<T,A>::drop_slow (107 samples, 0.64%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (107 samples, 0.64%)mach_absolute_time (2 samples, 0.01%)DYLD-STUB$$free (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (9 samples, 0.05%)_xzm_free (7 samples, 0.04%)mach_absolute_time (5 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (14 samples, 0.08%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (14 samples, 0.08%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (2 samples, 0.01%)postgres_protocol::message::frontend::write_body (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)DYLD-STUB$$memcpy (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (18 samples, 0.11%)_platform_memmove (6 samples, 0.04%)<i64 as postgres_types::ToSql>::to_sql_checked (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (2 samples, 0.01%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (5 samples, 0.03%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (2 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (12 samples, 0.07%)alloc::raw_vec::finish_grow (11 samples, 0.07%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)core::iter::traits::iterator::Iterator::unzip (20 samples, 0.12%)tokio_postgres::client::InnerClient::with_buf (68 samples, 0.41%)tokio_postgres::query::encode_bind (56 samples, 0.34%)postgres_types::__to_sql_checked (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.02%)bytes::bytes_mut::shared_v_drop (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (10 samples, 0.06%)postgres_protocol::message::backend::Message::parse (7 samples, 0.04%)tokio_postgres::prepare::get_type::_{{closure}} (2 samples, 0.01%)core::str::converts::from_utf8 (4 samples, 0.02%)tokio_postgres::query::extract_row_affected (8 samples, 0.05%)core::str::iter::SplitInternal<P>::next_back (2 samples, 0.01%)_xzm_xzone_malloc_tiny (10 samples, 0.06%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.01%)tokio::runtime::context::with_scheduler (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (18 samples, 0.11%)tokio::runtime::task::waker::wake_by_val (4 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.01%)__rustc::__rdl_alloc (2 samples, 0.01%)_xzm_xzone_malloc (3 samples, 0.02%)tokio_postgres::client::InnerClient::send (35 samples, 0.21%)futures_channel::mpsc::channel (15 samples, 0.09%)_xzm_xzone_malloc_tiny (5 samples, 0.03%)__rustc::__rust_dealloc (2 samples, 0.01%)_platform_memset (2 samples, 0.01%)_xzm_free (8 samples, 0.05%)mach_absolute_time (3 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (12 samples, 0.07%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (16 samples, 0.10%)bytes::bytes_mut::BytesMut::reserve_inner (23 samples, 0.14%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (22 samples, 0.13%)alloc::raw_vec::finish_grow (10 samples, 0.06%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (108 samples, 0.65%)tokio_postgres::client::Responses::poll_next (66 samples, 0.40%)postgres_protocol::message::backend::Message::parse (35 samples, 0.21%)_malloc_zone_realloc (8 samples, 0.05%)xzm_realloc (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (15 samples, 0.09%)alloc::raw_vec::finish_grow (14 samples, 0.08%)_realloc (14 samples, 0.08%)xzm_malloc_zone_size (5 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (18 samples, 0.11%)alloc::fmt::format::format_inner (33 samples, 0.20%)core::fmt::write (28 samples, 0.17%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (24 samples, 0.14%)core::fmt::Formatter::pad_integral (5 samples, 0.03%)core::fmt::Formatter::pad_integral::write_prefix (3 samples, 0.02%)_xzm_xzone_malloc_tiny (6 samples, 0.04%)alloc::raw_vec::RawVec<T,A>::grow_one (11 samples, 0.07%)alloc::raw_vec::finish_grow (10 samples, 0.06%)alloc::sync::Arc<T,A>::drop_slow (27 samples, 0.16%)_xzm_free (20 samples, 0.12%)mach_absolute_time (9 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (32 samples, 0.19%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (32 samples, 0.19%)postgres_protocol::message::backend::Message::parse (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.02%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (21 samples, 0.13%)futures_channel::mpsc::channel (14 samples, 0.08%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)DYLD-STUB$$free (2 samples, 0.01%)_platform_memset (2 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (9 samples, 0.05%)_xzm_free (6 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (15 samples, 0.09%)_xzm_free (6 samples, 0.04%)bytes::bytes::Bytes::slice (2 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (15 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (15 samples, 0.09%)alloc::raw_vec::finish_grow (9 samples, 0.05%)_malloc_zone_malloc (2 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (16 samples, 0.10%)tokio_postgres::client::Responses::poll_next (90 samples, 0.54%)postgres_protocol::message::backend::Message::parse (65 samples, 0.39%)std::io::Read::read_exact (2 samples, 0.01%)_platform_memmove (2 samples, 0.01%)_platform_memmove (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (12 samples, 0.07%)bytes::bytes_mut::BytesMut::reserve_inner (8 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.03%)alloc::raw_vec::finish_grow (5 samples, 0.03%)_realloc (5 samples, 0.03%)_malloc_zone_realloc (5 samples, 0.03%)xzm_realloc (4 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (8 samples, 0.05%)_xzm_xzone_malloc_tiny (6 samples, 0.04%)core::slice::memchr::memchr_aligned (5 samples, 0.03%)_platform_memmove (3 samples, 0.02%)_platform_memmove (2 samples, 0.01%)tokio_postgres::prepare::encode (45 samples, 0.27%)tokio_postgres::client::InnerClient::with_buf (45 samples, 0.27%)postgres_protocol::message::frontend::write_body (11 samples, 0.07%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (8 samples, 0.05%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (15 samples, 0.09%)_xzm_xzone_malloc_freelist_outlined (3 samples, 0.02%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)xzm_chunk_mark_used (2 samples, 0.01%)_xzm_reclaim_mark_used (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting (2 samples, 0.01%)mach_vm_reclaim_update_kernel_accounting_trap (2 samples, 0.01%)tokio_postgres::client::Client::execute::_{{closure}} (608 samples, 3.64%)toki..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (267 samples, 1.60%)tokio_postgres::statement::Statement::new (6 samples, 0.04%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (614 samples, 3.68%)toki..bytes::bytes::Bytes::slice (2 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (9 samples, 0.05%)tokio_postgres::client::Responses::poll_next (22 samples, 0.13%)postgres_protocol::message::backend::Message::parse (19 samples, 0.11%)std::io::default_read_exact (2 samples, 0.01%)core::str::converts::from_utf8 (4 samples, 0.02%)tokio_postgres::query::extract_row_affected (9 samples, 0.05%)core::str::iter::SplitInternal<P>::next_back (4 samples, 0.02%)_platform_memcmp (2 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (45 samples, 0.27%)tokio_postgres::row::Row::new (6 samples, 0.04%)<alloc::vec::Vec<T> as fallible_iterator::FromFallibleIterator<T>>::from_fallible_iter (4 samples, 0.02%)_xzm_free (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (4 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.01%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (14 samples, 0.08%)tokio_postgres::client::InnerClient::with_buf (6 samples, 0.04%)postgres_protocol::message::frontend::write_body (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (20 samples, 0.12%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (18 samples, 0.11%)_xzm_free (2 samples, 0.01%)_xzm_free (3 samples, 0.02%)_xzm_free (3 samples, 0.02%)mach_absolute_time (2 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (11 samples, 0.07%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (11 samples, 0.07%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.02%)postgres_protocol::message::frontend::write_body (2 samples, 0.01%)<alloc::vec::Vec<u8> as postgres_types::ToSql>::to_sql_checked (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (12 samples, 0.07%)_platform_memmove (5 samples, 0.03%)_xzm_free (6 samples, 0.04%)<postgres_types::type_gen::Inner as core::clone::Clone>::clone (6 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (9 samples, 0.05%)alloc::raw_vec::finish_grow (5 samples, 0.03%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)core::iter::traits::iterator::Iterator::unzip (20 samples, 0.12%)tokio_postgres::client::InnerClient::with_buf (64 samples, 0.38%)tokio_postgres::query::encode_bind (56 samples, 0.34%)postgres_types::__to_sql_checked (5 samples, 0.03%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (5 samples, 0.03%)_platform_memmove (5 samples, 0.03%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (3 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (4 samples, 0.02%)<deduplicated_symbol> (3 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (17 samples, 0.10%)futures_channel::mpsc::channel (11 samples, 0.07%)_xzm_xzone_malloc_tiny (4 samples, 0.02%)_platform_memset (2 samples, 0.01%)_xzm_free (6 samples, 0.04%)futures_channel::mpsc::Receiver<T>::next_message (10 samples, 0.06%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (14 samples, 0.08%)_xzm_free (2 samples, 0.01%)bytes::bytes_mut::BytesMut::reserve_inner (13 samples, 0.08%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (12 samples, 0.07%)alloc::raw_vec::finish_grow (3 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (133 samples, 0.80%)tokio_postgres::query::start::_{{closure}} (63 samples, 0.38%)tokio_postgres::client::Responses::poll_next (41 samples, 0.25%)postgres_protocol::message::backend::Message::parse (20 samples, 0.12%)_xzm_xzone_malloc_freelist_outlined (4 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)default_zone_realloc (2 samples, 0.01%)_malloc_zone_realloc (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (14 samples, 0.08%)alloc::raw_vec::finish_grow (12 samples, 0.07%)_realloc (10 samples, 0.06%)xzm_malloc_zone_size (5 samples, 0.03%)<alloc::string::String as core::fmt::Write>::write_str (17 samples, 0.10%)alloc::raw_vec::finish_grow (2 samples, 0.01%)alloc::fmt::format::format_inner (30 samples, 0.18%)core::fmt::write (22 samples, 0.13%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (18 samples, 0.11%)DYLD-STUB$$mach_absolute_time (2 samples, 0.01%)_xzm_free (10 samples, 0.06%)mach_absolute_time (7 samples, 0.04%)_xzm_xzone_malloc (2 samples, 0.01%)_malloc_zone_realloc (22 samples, 0.13%)xzm_realloc (16 samples, 0.10%)_realloc (28 samples, 0.17%)xzm_malloc_zone_size (2 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (40 samples, 0.24%)alloc::raw_vec::finish_grow (38 samples, 0.23%)_free (4 samples, 0.02%)_xzm_free (3 samples, 0.02%)_xzm_free (11 samples, 0.07%)mach_absolute_time (8 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (34 samples, 0.20%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (33 samples, 0.20%)alloc::sync::Arc<T,A>::drop_slow (19 samples, 0.11%)core::str::converts::from_utf8 (6 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (6 samples, 0.04%)futures_core::task::__internal::atomic_waker::AtomicWaker::wake (2 samples, 0.01%)<deduplicated_symbol> (2 samples, 0.01%)__rustc::__rdl_alloc (3 samples, 0.02%)_malloc_zone_malloc (7 samples, 0.04%)tokio_postgres::client::InnerClient::send (24 samples, 0.14%)futures_channel::mpsc::channel (17 samples, 0.10%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.02%)_xzm_free (3 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (5 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (5 samples, 0.03%)alloc::raw_vec::finish_grow (2 samples, 0.01%)postgres_protocol::message::backend::Message::parse (22 samples, 0.13%)tokio_postgres::client::Responses::poll_next (35 samples, 0.21%)_platform_memmove (2 samples, 0.01%)xzm_malloc_zone_realloc (2 samples, 0.01%)_platform_memmove (4 samples, 0.02%)_xzm_xzone_malloc (3 samples, 0.02%)_malloc_zone_realloc (16 samples, 0.10%)xzm_realloc (12 samples, 0.07%)_xzm_xzone_malloc_tiny (3 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (40 samples, 0.24%)bytes::bytes_mut::BytesMut::reserve_inner (34 samples, 0.20%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (26 samples, 0.16%)alloc::raw_vec::finish_grow (25 samples, 0.15%)_realloc (19 samples, 0.11%)xzm_malloc_zone_size (2 samples, 0.01%)_malloc_zone_malloc (2 samples, 0.01%)bytes::bytes_mut::BytesMut::split_to (4 samples, 0.02%)core::slice::memchr::memchr_aligned (3 samples, 0.02%)tokio_postgres::prepare::encode (59 samples, 0.35%)tokio_postgres::client::InnerClient::with_buf (59 samples, 0.35%)postgres_protocol::message::frontend::write_body (4 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (3 samples, 0.02%)_platform_memmove (3 samples, 0.02%)tokio_postgres::prepare::get_type::_{{closure}} (27 samples, 0.16%)postgres_types::Type::from_oid (7 samples, 0.04%)postgres_types::type_gen::Inner::from_oid (5 samples, 0.03%)_xzm_xzone_malloc_freelist_outlined (2 samples, 0.01%)_xzm_xzone_find_and_malloc_from_freelist_chunk (2 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (519 samples, 3.11%)tok..tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (291 samples, 1.74%)tokio_postgres::statement::Statement::new (15 samples, 0.09%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (528 samples, 3.16%)tok..torii::etl::decoder::DecoderId::new (4 samples, 0.02%)_malloc_zone_malloc (2 samples, 0.01%)_xzm_xzone_malloc_tiny (5 samples, 0.03%)torii_common::felt_to_blob (18 samples, 0.11%)lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::_<impl lambdaworks_math::field::element::FieldElement<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<lambdaworks_math::field::fields::fft_friendly::stark_252_prime_field::MontgomeryConfigStark252PrimeField,4_usize>>>::to_bytes_be (6 samples, 0.04%)<lambdaworks_math::field::fields::montgomery_backed_prime_fields::MontgomeryBackendPrimeField<M,_> as lambdaworks_math::field::traits::IsPrimeField>::representative (4 samples, 0.02%)torii_common::u256_to_blob (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)core::hash::BuildHasher::hash_one (8 samples, 0.05%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (5 samples, 0.03%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (6 samples, 0.04%)tokio_postgres::client::InnerClient::with_buf (2 samples, 0.01%)bytes::bytes_mut::BytesMut::freeze (2 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::row::Row> (8 samples, 0.05%)alloc::sync::Arc<T,A>::drop_slow (8 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (8 samples, 0.05%)_xzm_free (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (7 samples, 0.04%)core::hash::BuildHasher::hash_one (4 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (4 samples, 0.02%)core::hash::BuildHasher::hash_one (3 samples, 0.02%)hashbrown::rustc_entry::_<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry (6 samples, 0.04%)tokio_postgres::client::InnerClient::send (3 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.01%)bytes::bytes_mut::BytesMut::freeze (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (9 samples, 0.05%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (9 samples, 0.05%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (9 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (6 samples, 0.04%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (6 samples, 0.04%)tokio_postgres::query::encode_bind (6 samples, 0.04%)core::iter::traits::iterator::Iterator::unzip (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)core::ptr::drop_in_place<postgres_protocol::message::backend::Message> (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.02%)tokio_postgres::query::start::_{{closure}} (17 samples, 0.10%)tokio_postgres::client::Responses::poll_next (13 samples, 0.08%)postgres_protocol::message::backend::Message::parse (9 samples, 0.05%)bytes::bytes_mut::BytesMut::reserve_inner (7 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.04%)alloc::fmt::format::format_inner (5 samples, 0.03%)core::fmt::write (5 samples, 0.03%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (4 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)_malloc_zone_realloc (3 samples, 0.02%)_malloc_zone_realloc (4 samples, 0.02%)xzm_realloc (4 samples, 0.02%)_xzm_free (3 samples, 0.02%)mach_absolute_time (3 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (7 samples, 0.04%)alloc::raw_vec::finish_grow (7 samples, 0.04%)_realloc (6 samples, 0.04%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (6 samples, 0.04%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (6 samples, 0.04%)alloc::sync::Arc<T,A>::drop_slow (5 samples, 0.03%)_xzm_free (4 samples, 0.02%)mach_absolute_time (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.01%)_xzm_xzone_malloc (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (3 samples, 0.02%)postgres_protocol::message::backend::Message::parse (3 samples, 0.02%)_platform_memmove (4 samples, 0.02%)_malloc_zone_realloc (5 samples, 0.03%)xzm_realloc (5 samples, 0.03%)_xzm_free (4 samples, 0.02%)mach_absolute_time (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (12 samples, 0.07%)bytes::bytes_mut::BytesMut::reserve_inner (7 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (7 samples, 0.04%)alloc::raw_vec::finish_grow (7 samples, 0.04%)_realloc (6 samples, 0.04%)tokio_postgres::prepare::encode (14 samples, 0.08%)tokio_postgres::client::InnerClient::with_buf (14 samples, 0.08%)tokio_postgres::prepare::get_type::_{{closure}} (4 samples, 0.02%)tokio_postgres::client::Client::execute::_{{closure}} (83 samples, 0.50%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (47 samples, 0.28%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (84 samples, 0.50%)tokio_postgres::client::Responses::poll_next (3 samples, 0.02%)postgres_protocol::message::backend::Message::parse (2 samples, 0.01%)postgres_protocol::message::backend::Buffer::read_cstr (2 samples, 0.01%)core::str::converts::from_utf8 (2 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (7 samples, 0.04%)tokio_postgres::query::extract_row_affected (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)tokio_postgres::client::InnerClient::with_buf (8 samples, 0.05%)tokio_postgres::query::encode_bind (8 samples, 0.05%)core::iter::traits::iterator::Iterator::unzip (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (4 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (4 samples, 0.02%)futures_channel::mpsc::Receiver<T>::next_message (4 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (20 samples, 0.12%)tokio_postgres::query::start::_{{closure}} (12 samples, 0.07%)tokio_postgres::client::Responses::poll_next (7 samples, 0.04%)postgres_protocol::message::backend::Message::parse (2 samples, 0.01%)alloc::fmt::format::format_inner (8 samples, 0.05%)core::fmt::write (4 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (4 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)alloc::raw_vec::finish_grow (3 samples, 0.02%)_realloc (3 samples, 0.02%)xzm_malloc_zone_size (2 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)bytes::bytes::Bytes::slice (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (11 samples, 0.07%)postgres_protocol::message::backend::Message::parse (6 samples, 0.04%)tokio_postgres::prepare::encode (5 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.02%)postgres_protocol::message::frontend::write_body (2 samples, 0.01%)tokio_postgres::transaction::Transaction::query_opt::_{{closure}} (70 samples, 0.42%)tokio_postgres::client::Client::query_opt::_{{closure}} (69 samples, 0.41%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (39 samples, 0.23%)tokio_postgres::statement::Statement::new (2 samples, 0.01%)torii_common::felt_to_blob (2 samples, 0.01%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)torii_erc20::storage::Erc20Storage::apply_transfers_with_adjustments::_{{closure}} (212 samples, 1.27%)torii_common::u256_to_blob (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (4 samples, 0.02%)futures_channel::mpsc::channel (3 samples, 0.02%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (8 samples, 0.05%)tokio_postgres::client::InnerClient::with_buf (3 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (12 samples, 0.07%)alloc::sync::Arc<T,A>::drop_slow (11 samples, 0.07%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (11 samples, 0.07%)_xzm_free (3 samples, 0.02%)mach_absolute_time (2 samples, 0.01%)hashbrown::map::HashMap<K,V,S,A>::insert (4 samples, 0.02%)core::hash::BuildHasher::hash_one (3 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (3 samples, 0.02%)postgres_protocol::message::backend::Message::parse (3 samples, 0.02%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (5 samples, 0.03%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)mach_absolute_time (2 samples, 0.01%)core::iter::traits::iterator::Iterator::unzip (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (3 samples, 0.02%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.02%)tokio_postgres::query::encode_bind (4 samples, 0.02%)futures_channel::mpsc::UnboundedSender<T>::do_send_nb (3 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (4 samples, 0.02%)tokio_postgres::query::query::_{{closure}} (11 samples, 0.07%)tokio_postgres::query::start::_{{closure}} (7 samples, 0.04%)tokio_postgres::client::Responses::poll_next (3 samples, 0.02%)alloc::fmt::format::format_inner (4 samples, 0.02%)core::fmt::write (3 samples, 0.02%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (3 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)_realloc (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (3 samples, 0.02%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (3 samples, 0.02%)_xzm_xzone_malloc (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (6 samples, 0.04%)futures_channel::mpsc::channel (5 samples, 0.03%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (41 samples, 0.25%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (22 samples, 0.13%)tokio_postgres::prepare::encode (5 samples, 0.03%)tokio_postgres::client::InnerClient::with_buf (4 samples, 0.02%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (4 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (4 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)torii_erc20::storage::Erc20Storage::pg_get_balances_batch::_{{closure}} (64 samples, 0.38%)<torii_erc20::sink::Erc20Sink as torii::etl::sink::Sink>::process::_{{closure}} (1,660 samples, 9.94%)<torii_erc20::..xzm_segment_group_free_chunk (4 samples, 0.02%)_xzm_segment_group_segment_span_free_coalesce (4 samples, 0.02%)_xzm_segment_group_span_mark_used (4 samples, 0.02%)_xzm_reclaim_mark_used (4 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting (4 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (4 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::row::Row> (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.01%)<tokio_postgres::query::RowStream as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)tokio_postgres::query::encode (3 samples, 0.02%)<deduplicated_symbol> (2 samples, 0.01%)tokio_postgres::query::query::_{{closure}} (5 samples, 0.03%)tokio_postgres::client::Responses::poll_next (2 samples, 0.01%)postgres_protocol::message::backend::Message::parse (2 samples, 0.01%)tokio_postgres::client::Client::query_opt::_{{closure}} (14 samples, 0.08%)tokio_postgres::client::Client::query_raw::_{{closure}} (12 samples, 0.07%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (6 samples, 0.04%)<tokio_postgres::statement::StatementInner as core::ops::drop::Drop>::drop (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::statement::StatementInner> (3 samples, 0.02%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.01%)_xzm_free (2 samples, 0.01%)tokio_postgres::client::Responses::poll_next (2 samples, 0.01%)<bytes::bytes_mut::BytesMut as bytes::buf::buf_mut::BufMut>::put_slice (2 samples, 0.01%)tokio_postgres::query::encode (5 samples, 0.03%)core::iter::traits::iterator::Iterator::unzip (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)tokio_postgres::client::InnerClient::send (3 samples, 0.02%)futures_channel::mpsc::channel (2 samples, 0.01%)<futures_channel::mpsc::Receiver<T> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)futures_channel::mpsc::Receiver<T>::next_message (2 samples, 0.01%)tokio_postgres::query::start::_{{closure}} (12 samples, 0.07%)tokio_postgres::client::Responses::poll_next (8 samples, 0.05%)postgres_protocol::message::backend::Message::parse (4 samples, 0.02%)bytes::bytes_mut::BytesMut::reserve_inner (3 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::fmt::format::format_inner (3 samples, 0.02%)core::fmt::write (2 samples, 0.01%)core::fmt::num::imp::_<impl core::fmt::Display for u64>::fmt (2 samples, 0.01%)<alloc::string::String as core::fmt::Write>::write_str (2 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (2 samples, 0.01%)alloc::raw_vec::finish_grow (2 samples, 0.01%)alloc::sync::Arc<T,A>::drop_slow (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)core::ptr::drop_in_place<tokio_postgres::client::Responses> (5 samples, 0.03%)<futures_channel::mpsc::Receiver<T> as core::ops::drop::Drop>::drop (5 samples, 0.03%)tokio_postgres::client::InnerClient::send (2 samples, 0.01%)tokio_postgres::transaction::Transaction::execute::_{{closure}} (38 samples, 0.23%)tokio_postgres::client::Client::execute::_{{closure}} (38 samples, 0.23%)tokio_postgres::to_statement::private::ToStatementType::into_statement::_{{closure}} (13 samples, 0.08%)torii::etl::decoder::DecoderId::new (3 samples, 0.02%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (2 samples, 0.01%)<torii_erc721::sink::Erc721Sink as torii::etl::sink::Sink>::process::_{{closure}} (69 samples, 0.41%)torii_common::felt_to_blob (2 samples, 0.01%)<torii::etl::sink::multi::MultiSink as torii::etl::sink::Sink>::process::_{{closure}} (1,750 samples, 10.48%)<torii::etl::si.._free (4 samples, 0.02%)_xzm_free (9 samples, 0.05%)core::hash::BuildHasher::hash_one (2 samples, 0.01%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (3 samples, 0.02%)_xzm_free (2 samples, 0.01%)_free (3 samples, 0.02%)core::ptr::drop_in_place<torii::etl::extractor::ExtractionBatch> (15 samples, 0.09%)_xzm_free (9 samples, 0.05%)torii::run::_{{closure}}::_{{closure}} (3,079 samples, 18.44%)torii::run::_{{closure}}::_{{..hashbrown::map::HashMap<K,V,S,A>::insert (8 samples, 0.05%)core::hash::BuildHasher::hash_one (5 samples, 0.03%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (4 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (4 samples, 0.02%)tokio_util::util::poll_buf::poll_read_buf (4 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_read (4 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (4 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (4 samples, 0.02%)__recvfrom (4 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (4 samples, 0.02%)tokio::io::poll_evented::PollEvented<E>::poll_write (4 samples, 0.02%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (4 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Write>::write (4 samples, 0.02%)__sendto (4 samples, 0.02%)torii_erc1155::storage::Erc1155Storage::new::_{{closure}}::_{{closure}} (11 samples, 0.07%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (11 samples, 0.07%)<bytes::bytes_mut::BytesMut as core::ops::drop::Drop>::drop (4 samples, 0.02%)_xzm_free (2 samples, 0.01%)_free (3 samples, 0.02%)__bzero (2 samples, 0.01%)futures_channel::mpsc::queue::Queue<T>::pop_spin (48 samples, 0.29%)_xzm_free (24 samples, 0.14%)mach_absolute_time (2 samples, 0.01%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (75 samples, 0.45%)futures_core::task::__internal::atomic_waker::AtomicWaker::register (4 samples, 0.02%)_platform_memmove (21 samples, 0.13%)_xzm_free (4 samples, 0.02%)_platform_memset (2 samples, 0.01%)_xzm_free (11 samples, 0.07%)_platform_memset (5 samples, 0.03%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (47 samples, 0.28%)bytes::bytes_mut::shared_v_drop (15 samples, 0.09%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (30 samples, 0.18%)bytes::bytes_mut::BytesMut::split_to (5 samples, 0.03%)bytes::bytes_mut::BytesMut::split_to (7 samples, 0.04%)<tokio_postgres::socket::Socket as tokio::io::async_read::AsyncRead>::poll_read (8 samples, 0.05%)DYLD-STUB$$recv (2 samples, 0.01%)__recvfrom (2,693 samples, 16.13%)__recvfrom<&std::net::tcp::TcpStream as std::io::Read>::read (2,704 samples, 16.20%)<&std::net::tcp::TcpStrea..<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2,890 samples, 17.31%)<&mio::net::tcp::stream::Tc..__recvfrom (183 samples, 1.10%)tokio::runtime::io::registration::Registration::poll_ready (55 samples, 0.33%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (39 samples, 0.23%)tokio::io::poll_evented::PollEvented<E>::poll_read (2,970 samples, 17.79%)tokio::io::poll_evented::Pol..<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (3,076 samples, 18.43%)<tokio_util::codec::framed_im..tokio_util::util::poll_buf::poll_read_buf (2,994 samples, 17.93%)tokio_util::util::poll_buf::..tokio::runtime::io::registration::Registration::poll_ready (2 samples, 0.01%)bytes::bytes_mut::BytesMut::advance_unchecked (4 samples, 0.02%)DYLD-STUB$$__sendto (2 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (1,832 samples, 10.97%)<&std::net::tcp:..__sendto (1,820 samples, 10.90%)__sendto<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (1,957 samples, 11.72%)<&mio::net::tcp::..__sendto (119 samples, 0.71%)tokio::runtime::io::registration::Registration::poll_ready (18 samples, 0.11%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (6 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (2,014 samples, 12.06%)<tokio_util::codec..tokio::io::poll_evented::PollEvented<E>::poll_write (1,997 samples, 11.96%)tokio::io::poll_ev..<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_ready (8 samples, 0.05%)DYLD-STUB$$free (3 samples, 0.02%)DYLD-STUB$$memcpy (10 samples, 0.06%)_free (10 samples, 0.06%)_platform_memmove (16 samples, 0.10%)DYLD-STUB$$_platform_bzero (3 samples, 0.02%)__bzero (6 samples, 0.04%)_xzm_free (82 samples, 0.49%)_platform_memset (3 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (11 samples, 0.07%)<std::sys::sync::mutex::pthread::Mutex as core::ops::drop::Drop>::drop (2 samples, 0.01%)DYLD-STUB$$_platform_bzero (2 samples, 0.01%)_xzm_free (9 samples, 0.05%)DYLD-STUB$$free (2 samples, 0.01%)_free (5 samples, 0.03%)__bzero (3 samples, 0.02%)_xzm_free (23 samples, 0.14%)_platform_memset (2 samples, 0.01%)free (3 samples, 0.02%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (64 samples, 0.38%)alloc::sync::Arc<T,A>::drop_slow (46 samples, 0.28%)xzm_malloc_zone_try_free_default (3 samples, 0.02%)futures_channel::mpsc::BoundedSenderInner<T>::poll_unparked (3 samples, 0.02%)<deduplicated_symbol> (6 samples, 0.04%)DYLD-STUB$$malloc (2 samples, 0.01%)__rustc::__rust_alloc (2 samples, 0.01%)_malloc_zone_malloc (4 samples, 0.02%)_xzm_xzone_malloc (3 samples, 0.02%)_xzm_xzone_malloc_tiny (14 samples, 0.08%)_xzm_xzone_malloc_tiny_or_early (4 samples, 0.02%)malloc (2 samples, 0.01%)std::sys::sync::once_box::OnceBox<T>::initialize (3 samples, 0.02%)std::sys::pal::unix::sync::mutex::Mutex::init (3 samples, 0.02%)pthread_mutex_init (3 samples, 0.02%)_tlv_get_addr (2 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (12 samples, 0.07%)tokio::runtime::context::with_scheduler (8 samples, 0.05%)tokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::schedule_local (3 samples, 0.02%)tokio::runtime::task::raw::schedule (5 samples, 0.03%)tokio::runtime::task::waker::wake_by_val (28 samples, 0.17%)tokio::runtime::task::state::State::transition_to_notified_by_val (5 samples, 0.03%)futures_channel::mpsc::Sender<T>::start_send (76 samples, 0.46%)futures_channel::mpsc::queue::Queue<T>::pop_spin (2 samples, 0.01%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (5,646 samples, 33.82%)<tokio_postgres::connection::Connection<S,T> as core::f..tokio_util::util::poll_buf::poll_read_buf (3 samples, 0.02%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (2 samples, 0.01%)_platform_memmove (4 samples, 0.02%)_xzm_free (2 samples, 0.01%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::_{{closure}} (5,664 samples, 33.93%)torii_erc20::storage::Erc20Storage::new::_{{closure}}::..futures_channel::mpsc::Sender<T>::start_send (2 samples, 0.01%)<futures_channel::mpsc::UnboundedReceiver<T> as futures_core::stream::Stream>::poll_next (5 samples, 0.03%)futures_channel::mpsc::queue::Queue<T>::pop_spin (3 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::encoder::Encoder<tokio_postgres::codec::FrontendMessage>>::encode (3 samples, 0.02%)_platform_memmove (3 samples, 0.02%)<tokio_postgres::codec::PostgresCodec as tokio_util::codec::decoder::Decoder>::decode (4 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Read>::read (128 samples, 0.77%)__recvfrom (127 samples, 0.76%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (135 samples, 0.81%)__recvfrom (7 samples, 0.04%)<tokio_util::codec::framed_impl::FramedImpl<T,U,R> as futures_core::stream::Stream>::poll_next (148 samples, 0.89%)tokio_util::util::poll_buf::poll_read_buf (138 samples, 0.83%)tokio::io::poll_evented::PollEvented<E>::poll_read (137 samples, 0.82%)tokio::runtime::io::registration::Registration::poll_ready (2 samples, 0.01%)tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness (2 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Write>::write (100 samples, 0.60%)__sendto (98 samples, 0.59%)<tokio_util::codec::framed_impl::FramedImpl<T,U,W> as futures_sink::Sink<I>>::poll_flush (106 samples, 0.63%)tokio::io::poll_evented::PollEvented<E>::poll_write (106 samples, 0.63%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (106 samples, 0.63%)__sendto (6 samples, 0.04%)_xzm_free (3 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.01%)core::ptr::drop_in_place<futures_channel::mpsc::Sender<tokio_postgres::codec::BackendMessages>> (3 samples, 0.02%)alloc::sync::Arc<T,A>::drop_slow (2 samples, 0.01%)<tokio_postgres::connection::Connection<S,T> as core::future::future::Future>::poll (280 samples, 1.68%)futures_channel::mpsc::Sender<T>::start_send (4 samples, 0.02%)<deduplicated_symbol> (10,800 samples, 64.69%)<deduplicated_symbol>torii_erc721::storage::Erc721Storage::new::_{{closure}}::_{{closure}} (283 samples, 1.70%)hyper::body::incoming::Sender::poll_ready (4 samples, 0.02%)atomic_waker::AtomicWaker::register (2 samples, 0.01%)tokio::runtime::scheduler::multi_thread::handle::_<impl tokio::runtime::task::Schedule for alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::schedule (2 samples, 0.01%)tokio::runtime::context::with_scheduler (2 samples, 0.01%)hyper::body::incoming::Sender::try_send_data (8 samples, 0.05%)futures_channel::mpsc::BoundedSenderInner<T>::try_send (7 samples, 0.04%)tokio::runtime::task::waker::wake_by_val (4 samples, 0.02%)bytes::bytes_mut::BytesMut::split_to (3 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)SSLRecordFreeInternal (2 samples, 0.01%)_platform_memmove (3 samples, 0.02%)_xzm_xzone_malloc_tiny (2 samples, 0.01%)<&std::net::tcp::TcpStream as std::io::Read>::read (237 samples, 1.42%)__recvfrom (237 samples, 1.42%)__recvfrom (36 samples, 0.22%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (274 samples, 1.64%)security_framework::secure_transport::read_func (279 samples, 1.67%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (279 samples, 1.67%)tokio::io::poll_evented::PollEvented<E>::poll_read (278 samples, 1.67%)tokio::runtime::io::registration::Registration::poll_ready (4 samples, 0.02%)ccmode_gcm_finalize (7 samples, 0.04%)cc_cmp_safe_internal (6 samples, 0.04%)timingsafe_enable_if_supported (6 samples, 0.04%)ccgcm_finalize (10 samples, 0.06%)timingsafe_restore_if_supported (3 samples, 0.02%)ccgcm_inc_iv (3 samples, 0.02%)timingsafe_restore_if_supported (2 samples, 0.01%)ccgcm_reset (2 samples, 0.01%)Decrypt_Main_Loop (8 samples, 0.05%)Decrypt_Main_Loop (42 samples, 0.25%)ccaes_vng_gcm_decrypt (45 samples, 0.27%)timingsafe_enable_if_supported (2 samples, 0.01%)CCSymmAEADDecrypt (73 samples, 0.44%)ccgcm_update (57 samples, 0.34%)timingsafe_restore_if_supported (2 samples, 0.01%)SSLDecryptRecord (74 samples, 0.44%)SSLEncodeUInt64 (2 samples, 0.01%)_platform_memmove (18 samples, 0.11%)ccgcm_gmac (2 samples, 0.01%)timingsafe_enable_if_supported (2 samples, 0.01%)ccmode_gcm_reset (3 samples, 0.02%)memset_s (3 samples, 0.02%)_platform_memset (2 samples, 0.01%)ccmode_gcm_init (6 samples, 0.04%)gcm_init (3 samples, 0.02%)ccmode_gcm_set_iv (3 samples, 0.02%)AccelerateCrypto_ecb_AES_encrypt (2 samples, 0.01%)timingsafe_enable_if_supported (7 samples, 0.04%)ccgcm_init_with_iv (22 samples, 0.13%)timingsafe_restore_if_supported (4 samples, 0.02%)SSLRecordReadInternal (406 samples, 2.43%)SS..tls_record_decrypt (120 samples, 0.72%)SSLRead (418 samples, 2.50%)SS.._platform_memmove (9 samples, 0.05%)<deduplicated_symbol> (422 samples, 2.53%)<d..__bzero (13 samples, 0.08%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (467 samples, 2.80%)<t.._platform_memset (18 samples, 0.11%)__bzero (2 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (471 samples, 2.82%)<h.._platform_memset (2 samples, 0.01%)_xzm_reclaim_mark_used_locked (3 samples, 0.02%)mach_vm_reclaim_try_cancel (3 samples, 0.02%)mach_absolute_time (3 samples, 0.02%)xzm_chunk_mark_used (6 samples, 0.04%)_xzm_reclaim_mark_used (6 samples, 0.04%)mach_vm_reclaim_update_kernel_accounting (3 samples, 0.02%)mach_vm_reclaim_update_kernel_accounting_trap (3 samples, 0.02%)_xzm_xzone_malloc_freelist_outlined (10 samples, 0.06%)_xzm_xzone_find_and_malloc_from_freelist_chunk (8 samples, 0.05%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_body (500 samples, 3.00%)hyp..hyper::proto::h1::decode::Decoder::decode (499 samples, 2.99%)hyp..<hyper::proto::h1::io::Buffered<T,B> as hyper::proto::h1::io::MemRead>::read_mem (499 samples, 2.99%)<hy..hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (496 samples, 2.97%)hyp..bytes::bytes_mut::BytesMut::reserve_inner (25 samples, 0.15%)_xzm_xzone_malloc_small_freelist (14 samples, 0.08%)<hyper::proto::h1::role::Client as hyper::proto::h1::Http1Transaction>::parse (4 samples, 0.02%)hyper::headers::content_length_parse_all (2 samples, 0.01%)security_framework::secure_transport::read_func (2 samples, 0.01%)<hyper_util::rt::tokio::TokioIo<T> as tokio::io::async_read::AsyncRead>::poll_read (2 samples, 0.01%)tokio::io::poll_evented::PollEvented<E>::poll_read (2 samples, 0.01%)<&mio::net::tcp::stream::TcpStream as std::io::Read>::read (2 samples, 0.01%)hyper::proto::h1::conn::Conn<I,B,T>::poll_read_head (8 samples, 0.05%)hyper::proto::h1::io::Buffered<T,B>::parse (8 samples, 0.05%)hyper::proto::h1::io::Buffered<T,B>::poll_read_from_io (4 samples, 0.02%)<hyper_util::rt::tokio::TokioIo<T> as hyper::rt::io::Read>::poll_read (4 samples, 0.02%)<tokio_native_tls::TlsStream<S> as tokio::io::async_read::AsyncRead>::poll_read (4 samples, 0.02%)<deduplicated_symbol> (4 samples, 0.02%)SSLRead (3 samples, 0.02%)SSLRecordReadInternal (3 samples, 0.02%)<&std::net::tcp::TcpStream as std::io::Write>::write (10 samples, 0.06%)__sendto (10 samples, 0.06%)SSLRecordServiceWriteQueueInternal (11 samples, 0.07%)security_framework::secure_transport::write_func (11 samples, 0.07%)tokio::io::poll_evented::PollEvented<E>::poll_write (11 samples, 0.07%)<&mio::net::tcp::stream::TcpStream as std::io::Write>::write (11 samples, 0.07%)<reqwest::connect::native_tls_conn::NativeTlsConn<T> as hyper::rt::io::Write>::poll_write (12 samples, 0.07%)tokio_native_tls::TlsStream<S>::with_context (12 samples, 0.07%)SSLWrite (12 samples, 0.07%)hyper::proto::h1::dispatch::Dispatcher<D,Bs,I,T>::poll_catch (539 samples, 3.23%)hyp..hyper::proto::h1::io::Buffered<T,B>::poll_flush (15 samples, 0.09%)tokio_native_tls::TlsStream<S>::with_context (3 samples, 0.02%)<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll (542 samples, 3.25%)<fu..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (542 samples, 3.25%)<fu..<hyper::client::conn::http1::upgrades::UpgradeableConnection<I,B> as core::future::future::Future>::poll (541 samples, 3.24%)<hy..<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::future::try_future::try_flatten::TryFlatten<Fut,<Fut as futures_core::future::TryFuture>::Ok> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.01%)<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll (2 samples, 0.01%)<hyper_util::service::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll (2 samples, 0.01%)reqwest::connect::with_timeout::_{{closure}} (2 samples, 0.01%)reqwest::connect::ConnectorService::connect_with_maybe_proxy::_{{closure}} (2 samples, 0.01%)<hyper_tls::client::HttpsConnector<T> as tower_service::Service<http::uri::Uri>>::call::_{{closure}} (2 samples, 0.01%)<tokio_native_tls::MidHandshake<S> as core::future::future::Future>::poll (2 samples, 0.01%)native_tls::imp::MidHandshakeTlsStream<S>::handshake (2 samples, 0.01%)security_framework::secure_transport::MidHandshakeClientBuilder<S>::handshake (2 samples, 0.01%)SSLHandshake (2 samples, 0.01%)SSLHandshakeProceed (2 samples, 0.01%)<tokio::runtime::task::core::TaskIdGuard as core::ops::drop::Drop>::drop (2 samples, 0.01%)tokio::runtime::task::core::TaskIdGuard::enter (4 samples, 0.02%)tokio::runtime::task::state::State::transition_to_idle (13 samples, 0.08%)tokio::runtime::task::state::State::transition_to_running (10 samples, 0.06%)tokio::runtime::task::harness::Harness<T,S>::poll (11,388 samples, 68.22%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::scheduler::multi_thread::worker::Context::run_task (11,417 samples, 68.39%)tokio::runtime::scheduler::multi_thread::worker::Context::run_tasktokio::runtime::scheduler::multi_thread::worker::_<impl tokio::runtime::scheduler::multi_thread::handle::Handle>::notify_if_work_pending (9 samples, 0.05%)tokio::runtime::scheduler::multi_thread::worker::Context::run (16,645 samples, 99.71%)tokio::runtime::scheduler::multi_thread::worker::Context::runtokio::runtime::task::harness::Harness<T,S>::poll (2 samples, 0.01%)tokio::runtime::scheduler::multi_thread::worker::Context::run_task (2 samples, 0.01%)all (16,694 samples, 100%)thread_start (16,657 samples, 99.78%)thread_start_pthread_start (16,657 samples, 99.78%)_pthread_startstd::sys::pal::unix::thread::Thread::new::thread_start (16,657 samples, 99.78%)std::sys::pal::unix::thread::Thread::new::thread_startcore::ops::function::FnOnce::call_once{{vtable.shim}} (16,656 samples, 99.77%)core::ops::function::FnOnce::call_once{{vtable.shim}}std::sys::backtrace::__rust_begin_short_backtrace (16,656 samples, 99.77%)std::sys::backtrace::__rust_begin_short_backtracetokio::runtime::blocking::pool::Inner::run (16,656 samples, 99.77%)tokio::runtime::blocking::pool::Inner::runtokio::runtime::task::harness::Harness<T,S>::poll (16,656 samples, 99.77%)tokio::runtime::task::harness::Harness<T,S>::polltokio::runtime::task::core::Core<T,S>::poll (16,656 samples, 99.77%)tokio::runtime::task::core::Core<T,S>::poll<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll (16,656 samples, 99.77%)<tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::polltokio::runtime::scheduler::multi_thread::worker::run (16,653 samples, 99.75%)tokio::runtime::scheduler::multi_thread::worker::runtokio::runtime::context::runtime::enter_runtime (16,653 samples, 99.75%)tokio::runtime::context::runtime::enter_runtimetokio::runtime::context::scoped::Scoped<T>::set (16,653 samples, 99.75%)tokio::runtime::context::scoped::Scoped<T>::set \ No newline at end of file diff --git a/bins/torii-tokens/src/config.rs b/bins/torii-tokens/src/config.rs index aa102b2..4e0bb6e 100644 --- a/bins/torii-tokens/src/config.rs +++ b/bins/torii-tokens/src/config.rs @@ -11,6 +11,7 @@ use starknet::core::types::Felt; /// /// - **Event**: Uses `starknet_getEvents` with per-contract cursors. /// Best for indexing specific contracts - easy to add new ones without re-indexing. +/// #[derive(Clone, Debug, Default, ValueEnum, PartialEq, Eq)] pub enum ExtractionMode { /// Fetch all events from blocks (single global cursor) @@ -20,6 +21,15 @@ pub enum ExtractionMode { Event, } +/// Metadata fetching behavior. +#[derive(Clone, Debug, ValueEnum, PartialEq, Eq)] +pub enum MetadataMode { + /// Fetch metadata during indexing. + Inline, + /// Skip metadata fetching during indexing (faster backfills). + Deferred, +} + /// Unified Token Indexer for Starknet /// /// Indexes ERC20, ERC721, and ERC1155 token transfers and events. @@ -44,6 +54,7 @@ pub enum ExtractionMode { /// # Add a new contract in event mode (just restart with updated list) /// torii-tokens --mode event --erc20 0x...ETH,0x...STRK,0x...USDC --from-block 0 /// # USDC starts from block 0, ETH and STRK resume from their cursors +/// /// ``` #[derive(Parser, Debug)] #[command(name = "torii-tokens")] @@ -78,6 +89,20 @@ pub struct Config { #[arg(long, default_value = "./torii-data")] pub db_dir: String, + /// Optional engine database URL/path. + /// + /// Supports PostgreSQL (`postgres://...`) and SQLite (`sqlite:...` or file path). + /// When omitted, engine state uses `/engine.db`. + #[arg(long, env = "DATABASE_URL")] + pub database_url: Option, + + /// Optional token storage database URL/path. + /// + /// Supports PostgreSQL (`postgres://...`) and SQLite (`sqlite:...` or file path). + /// When omitted, token storages use `--database-url` if set, otherwise `/*.db`. + #[arg(long, env = "STORAGE_DATABASE_URL")] + pub storage_database_url: Option, + /// Port for the HTTP/gRPC API #[arg(long, default_value = "3000")] pub port: u16, @@ -111,6 +136,13 @@ pub struct Config { #[arg(long, default_value = "50")] pub batch_size: u64, + /// Maximum number of in-flight block-range batches. + /// + /// Values > 1 enable extractor prefetching to overlap next-batch fetch/decode + /// with current-batch sink processing. + #[arg(long, default_value = "2")] + pub rpc_max_inflight_batches: usize, + /// Events per RPC request (event mode, max 1024 for most providers) #[arg(long, default_value = "1000")] pub event_chunk_size: u64, @@ -118,6 +150,18 @@ pub struct Config { /// Block range to query per iteration in event mode #[arg(long, default_value = "10000")] pub event_block_batch_size: u64, + + /// Metadata fetching mode. + /// + /// If omitted: defaults to `deferred` in block-range mode and `inline` in event mode. + #[arg(long, value_enum)] + pub metadata_mode: Option, + + /// Run metadata-only flow and exit. + /// + /// Note: currently implemented as a guarded no-op placeholder. + #[arg(long)] + pub metadata_backfill_only: bool, } impl Config { diff --git a/bins/torii-tokens/src/main.rs b/bins/torii-tokens/src/main.rs index 70ca39d..b23fe3f 100644 --- a/bins/torii-tokens/src/main.rs +++ b/bins/torii-tokens/src/main.rs @@ -38,10 +38,12 @@ mod config; use anyhow::Result; use clap::Parser; -use config::{Config, ExtractionMode}; +use config::{Config, ExtractionMode, MetadataMode}; use starknet::core::types::Felt; use std::path::Path; use std::sync::Arc; +#[cfg(feature = "profiling")] +use std::time::{SystemTime, UNIX_EPOCH}; use torii::etl::decoder::DecoderId; use torii::etl::extractor::{ BlockRangeConfig, BlockRangeExtractor, ContractEventConfig, EventExtractor, @@ -72,6 +74,28 @@ use torii_erc1155::{ FILE_DESCRIPTOR_SET as ERC1155_DESCRIPTOR_SET, }; +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum DbBackend { + Postgres, + Sqlite, +} + +fn backend_from_path(path: &str) -> DbBackend { + if path.starts_with("postgres://") || path.starts_with("postgresql://") { + DbBackend::Postgres + } else { + DbBackend::Sqlite + } +} + +fn resolve_storage_url(config: &Config, db_dir: &Path, fallback_file: &str) -> String { + config + .storage_database_url + .clone() + .or_else(|| config.database_url.clone()) + .unwrap_or_else(|| db_dir.join(fallback_file).to_string_lossy().to_string()) +} + #[tokio::main] async fn main() -> Result<()> { let env_filter = tracing_subscriber::EnvFilter::try_from_default_env() @@ -105,6 +129,12 @@ async fn run_indexer(config: Config) -> Result<()> { tracing::info!("To block: following chain head"); } tracing::info!("Database directory: {}", config.db_dir); + if let Some(url) = &config.database_url { + tracing::info!("Engine database URL: {}", url); + } + if let Some(url) = &config.storage_database_url { + tracing::info!("Storage database URL: {}", url); + } if config.mode == ExtractionMode::Event && !config.has_tokens() { tracing::error!( @@ -163,12 +193,17 @@ async fn run_indexer(config: Config) -> Result<()> { ExtractionMode::BlockRange => { tracing::info!("Using Block Range mode (single global cursor)"); tracing::info!(" Batch size: {} blocks", config.batch_size); + tracing::info!( + " Max in-flight batches: {}", + config.rpc_max_inflight_batches + ); let extractor_config = BlockRangeConfig { rpc_url: config.rpc_url.clone(), from_block: config.from_block, to_block: config.to_block, batch_size: config.batch_size, + max_inflight_batches: config.rpc_max_inflight_batches, retry_policy: RetryPolicy::default(), }; Box::new(BlockRangeExtractor::new(provider.clone(), extractor_config)) @@ -228,7 +263,66 @@ async fn run_indexer(config: Config) -> Result<()> { let db_dir = Path::new(&config.db_dir); std::fs::create_dir_all(db_dir)?; - let engine_db_path = db_dir.join("engine.db").to_string_lossy().to_string(); + let effective_metadata_mode = + config + .metadata_mode + .clone() + .unwrap_or_else(|| match config.mode { + ExtractionMode::BlockRange => MetadataMode::Deferred, + ExtractionMode::Event => MetadataMode::Inline, + }); + tracing::info!("Metadata mode: {:?}", effective_metadata_mode); + + if config.metadata_backfill_only { + tracing::warn!( + "--metadata-backfill-only is set. Dedicated metadata backfill flow is not implemented yet; exiting." + ); + return Ok(()); + } + + let engine_db_path = config + .database_url + .clone() + .unwrap_or_else(|| db_dir.join("engine.db").to_string_lossy().to_string()); + let erc20_db_path = resolve_storage_url(&config, db_dir, "erc20.db"); + let erc721_db_path = resolve_storage_url(&config, db_dir, "erc721.db"); + let erc1155_db_path = resolve_storage_url(&config, db_dir, "erc1155.db"); + + let engine_backend = backend_from_path(&engine_db_path); + let erc20_backend = backend_from_path(&erc20_db_path); + let erc721_backend = backend_from_path(&erc721_db_path); + let erc1155_backend = backend_from_path(&erc1155_db_path); + + tracing::info!("Engine backend: {:?} ({})", engine_backend, engine_db_path); + tracing::info!( + "ERC20 storage backend: {:?} ({})", + erc20_backend, + erc20_db_path + ); + tracing::info!( + "ERC721 storage backend: {:?} ({})", + erc721_backend, + erc721_db_path + ); + tracing::info!( + "ERC1155 storage backend: {:?} ({})", + erc1155_backend, + erc1155_db_path + ); + + if config + .database_url + .as_deref() + .is_some_and(|u| backend_from_path(u) == DbBackend::Postgres) + && (erc20_backend != DbBackend::Postgres + || erc721_backend != DbBackend::Postgres + || erc1155_backend != DbBackend::Postgres) + { + anyhow::bail!( + "Engine is configured for Postgres but one or more token storages resolved to SQLite. Set --storage-database-url to the same Postgres URL." + ); + } + let engine_db_config = torii::etl::engine_db::EngineDbConfig { path: engine_db_path, }; @@ -253,6 +347,12 @@ async fn run_indexer(config: Config) -> Result<()> { let mut torii_config = torii::ToriiConfig::builder() .port(config.port) .database_root(&config.db_dir) + .engine_database_url( + config + .database_url + .clone() + .unwrap_or_else(|| db_dir.join("engine.db").to_string_lossy().to_string()), + ) .with_extractor(extractor) .with_contract_identifier(registry); @@ -270,8 +370,7 @@ async fn run_indexer(config: Config) -> Result<()> { if create_erc20 { enabled_types.push("ERC20"); - let erc20_db_path = db_dir.join("erc20.db").to_string_lossy().to_string(); - let storage = Arc::new(Erc20Storage::new(&erc20_db_path)?); + let storage = Arc::new(Erc20Storage::new(&erc20_db_path).await?); tracing::info!("ERC20 database initialized: {}", erc20_db_path); let decoder = Arc::new(Erc20Decoder::new()); @@ -307,29 +406,29 @@ async fn run_indexer(config: Config) -> Result<()> { if create_erc721 { enabled_types.push("ERC721"); - let erc721_db_path = db_dir.join("erc721.db").to_string_lossy().to_string(); - let storage = Arc::new(Erc721Storage::new(&erc721_db_path)?); + let storage = Arc::new(Erc721Storage::new(&erc721_db_path).await?); tracing::info!("ERC721 database initialized: {}", erc721_db_path); let decoder = Arc::new(Erc721Decoder::new()); torii_config = torii_config.add_decoder(decoder); - // Spawn token URI service for async metadata fetching - let metadata_fetcher = Arc::new(MetadataFetcher::new(provider.clone())); - let (token_uri_sender, _token_uri_service) = TokenUriService::spawn( - metadata_fetcher, - storage.clone(), - 1024, // buffer size - 8, // max concurrent fetches - ); - let grpc_service = Erc721Service::new(storage.clone()); - let sink = Box::new( - Erc721Sink::new(storage) - .with_grpc_service(grpc_service.clone()) + let mut sink = Erc721Sink::new(storage).with_grpc_service(grpc_service.clone()); + if effective_metadata_mode == MetadataMode::Inline { + let metadata_fetcher = Arc::new(MetadataFetcher::new(provider.clone())); + let (token_uri_sender, _token_uri_service) = TokenUriService::spawn( + metadata_fetcher, + sink.storage().clone(), + 1024, // buffer size + 8, // max concurrent fetches + ); + sink = sink .with_metadata_fetching(provider.clone()) - .with_token_uri_sender(token_uri_sender), - ); + .with_token_uri_sender(token_uri_sender); + } else { + tracing::info!("ERC721 metadata fetching disabled for throughput (deferred mode)"); + } + let sink = Box::new(sink); torii_config = torii_config.add_sink_boxed(sink); erc721_grpc_service = Some(grpc_service); @@ -354,25 +453,25 @@ async fn run_indexer(config: Config) -> Result<()> { if create_erc1155 { enabled_types.push("ERC1155"); - let erc1155_db_path = db_dir.join("erc1155.db").to_string_lossy().to_string(); - let storage = Arc::new(Erc1155Storage::new(&erc1155_db_path)?); + let storage = Arc::new(Erc1155Storage::new(&erc1155_db_path).await?); tracing::info!("ERC1155 database initialized: {}", erc1155_db_path); let decoder = Arc::new(Erc1155Decoder::new()); torii_config = torii_config.add_decoder(decoder); - // Spawn token URI service for ERC1155 - let erc1155_fetcher = Arc::new(MetadataFetcher::new(provider.clone())); - let (erc1155_uri_sender, _erc1155_uri_service) = - TokenUriService::spawn(erc1155_fetcher, storage.clone(), 1024, 8); - let grpc_service = Erc1155Service::new(storage.clone()); - let sink = Box::new( - Erc1155Sink::new(storage) - .with_grpc_service(grpc_service.clone()) - .with_balance_tracking(provider.clone()) - .with_token_uri_sender(erc1155_uri_sender), - ); + let mut sink = Erc1155Sink::new(storage) + .with_grpc_service(grpc_service.clone()) + .with_balance_tracking(provider.clone()); + if effective_metadata_mode == MetadataMode::Inline { + let erc1155_fetcher = Arc::new(MetadataFetcher::new(provider.clone())); + let (erc1155_uri_sender, _erc1155_uri_service) = + TokenUriService::spawn(erc1155_fetcher, sink.storage().clone(), 1024, 8); + sink = sink.with_token_uri_sender(erc1155_uri_sender); + } else { + tracing::info!("ERC1155 metadata fetching disabled for throughput (deferred mode)"); + } + let sink = Box::new(sink); torii_config = torii_config.add_sink_boxed(sink); erc1155_grpc_service = Some(grpc_service); @@ -465,9 +564,23 @@ async fn run_indexer(config: Config) -> Result<()> { #[cfg(feature = "profiling")] { if let Ok(report) = guard.report().build() { - let file = std::fs::File::create("flamegraph.svg").unwrap(); + let ts = SystemTime::now() + .duration_since(UNIX_EPOCH) + .map(|d| d.as_secs()) + .unwrap_or(0); + let db_backend = if erc20_backend == DbBackend::Postgres { + "postgres" + } else { + "sqlite" + }; + let mode = match config.mode { + ExtractionMode::BlockRange => "block-range", + ExtractionMode::Event => "event", + }; + let filename = format!("flamegraph-torii-tokens-{mode}-{db_backend}-{ts}.svg"); + let file = std::fs::File::create(&filename).unwrap(); report.flamegraph(file).unwrap(); - tracing::info!("Flamegraph generated: flamegraph.svg"); + tracing::info!("Flamegraph generated: {}", filename); } } diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..97372c9 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,66 @@ +services: + postgres: + image: postgres:16-alpine + container_name: torii-postgres + command: + - postgres + - -c + - shared_buffers=4GB + - -c + - effective_cache_size=12GB + - -c + - maintenance_work_mem=1GB + - -c + - work_mem=32MB + - -c + - wal_buffers=16MB + - -c + - min_wal_size=2GB + - -c + - max_wal_size=8GB + - -c + - checkpoint_timeout=30min + - -c + - checkpoint_completion_target=0.9 + - -c + - wal_compression=on + - -c + - synchronous_commit=off + - -c + - random_page_cost=1.1 + - -c + - effective_io_concurrency=200 + - -c + - default_statistics_target=100 + - -c + - autovacuum_naptime=10s + - -c + - autovacuum_vacuum_scale_factor=0.02 + - -c + - autovacuum_analyze_scale_factor=0.01 + - -c + - max_worker_processes=16 + - -c + - max_parallel_workers=8 + - -c + - max_parallel_workers_per_gather=4 + - -c + - max_parallel_maintenance_workers=4 + environment: + POSTGRES_USER: torii + POSTGRES_PASSWORD: torii + POSTGRES_DB: torii + ports: + - "5432:5432" + mem_limit: 16g + shm_size: 4g + volumes: + - torii_postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U torii -d torii"] + interval: 5s + timeout: 5s + retries: 10 + +volumes: + torii_postgres_data: diff --git a/crates/torii-erc1155/Cargo.toml b/crates/torii-erc1155/Cargo.toml index d702594..961ca49 100644 --- a/crates/torii-erc1155/Cargo.toml +++ b/crates/torii-erc1155/Cargo.toml @@ -18,6 +18,7 @@ starknet = "0.17" # Storage rusqlite = { version = "0.32", features = ["bundled"] } +tokio-postgres = "0.7" # Serialization serde = { version = "1.0", features = ["derive"] } diff --git a/crates/torii-erc1155/proto/erc1155.proto b/crates/torii-erc1155/proto/erc1155.proto index 295c8fc..53c5303 100644 --- a/crates/torii-erc1155/proto/erc1155.proto +++ b/crates/torii-erc1155/proto/erc1155.proto @@ -150,6 +150,54 @@ message GetBalanceResponse { uint64 last_block = 2; } +// ===== Attribute Search ===== + +// OR-within-key filter values; AND logic is applied across keys. +message AttributeFilter { + // Attribute key / trait_type + string key = 1; + // Accepted values for this key (OR) + repeated string values = 2; +} + +// Facet count entry for UI filtering +message AttributeFacetCount { + // Attribute key / trait_type + string key = 1; + // Attribute value + string value = 2; + // Number of matching tokens containing this key/value + uint64 count = 3; +} + +// Request for QueryTokensByAttributes RPC +message QueryTokensByAttributesRequest { + // Token contract address (required, 32 bytes) + bytes token = 1; + // Attribute filters (AND across entries) + repeated AttributeFilter filters = 2; + // Cursor token_id (exclusive) for pagination + optional bytes cursor_token_id = 3; + // Maximum number of token IDs to return (default: 100, max: 1000) + uint32 limit = 4; + // Include facet counts in response + bool include_facets = 5; + // Maximum number of facet rows to return (default: 100, max: 1000) + uint32 facet_limit = 6; +} + +// Response for QueryTokensByAttributes RPC +message QueryTokensByAttributesResponse { + // Matched token IDs (U256 bytes) + repeated bytes token_ids = 1; + // Cursor for next page (absent if no more results) + optional bytes next_cursor_token_id = 2; + // Total number of matched token IDs (without pagination) + uint64 total_hits = 3; + // Facet counts over the matched set + repeated AttributeFacetCount facets = 4; +} + // ===== Token Metadata ===== // Request for GetTokenMetadata RPC @@ -212,6 +260,9 @@ service Erc1155 { // Get token metadata (name, symbol) rpc GetTokenMetadata(GetTokenMetadataRequest) returns (GetTokenMetadataResponse); + // Query token IDs by flattened metadata attributes (supports intersections) + rpc QueryTokensByAttributes(QueryTokensByAttributesRequest) returns (QueryTokensByAttributesResponse); + // Subscribe to real-time transfer events with filtering rpc SubscribeTransfers(SubscribeTransfersRequest) returns (stream TransferUpdate); diff --git a/crates/torii-erc1155/src/generated/erc1155_descriptor.bin b/crates/torii-erc1155/src/generated/erc1155_descriptor.bin index a3b3ed3..2e6f95b 100644 Binary files a/crates/torii-erc1155/src/generated/erc1155_descriptor.bin and b/crates/torii-erc1155/src/generated/erc1155_descriptor.bin differ diff --git a/crates/torii-erc1155/src/generated/torii.sinks.erc1155.rs b/crates/torii-erc1155/src/generated/torii.sinks.erc1155.rs index 6a7a7cc..936f6f5 100644 --- a/crates/torii-erc1155/src/generated/torii.sinks.erc1155.rs +++ b/crates/torii-erc1155/src/generated/torii.sinks.erc1155.rs @@ -181,6 +181,67 @@ pub struct GetBalanceResponse { #[prost(uint64, tag = "2")] pub last_block: u64, } +/// OR-within-key filter values; AND logic is applied across keys. +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AttributeFilter { + /// Attribute key / trait_type + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, + /// Accepted values for this key (OR) + #[prost(string, repeated, tag = "2")] + pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// Facet count entry for UI filtering +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AttributeFacetCount { + /// Attribute key / trait_type + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, + /// Attribute value + #[prost(string, tag = "2")] + pub value: ::prost::alloc::string::String, + /// Number of matching tokens containing this key/value + #[prost(uint64, tag = "3")] + pub count: u64, +} +/// Request for QueryTokensByAttributes RPC +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTokensByAttributesRequest { + /// Token contract address (required, 32 bytes) + #[prost(bytes = "vec", tag = "1")] + pub token: ::prost::alloc::vec::Vec, + /// Attribute filters (AND across entries) + #[prost(message, repeated, tag = "2")] + pub filters: ::prost::alloc::vec::Vec, + /// Cursor token_id (exclusive) for pagination + #[prost(bytes = "vec", optional, tag = "3")] + pub cursor_token_id: ::core::option::Option<::prost::alloc::vec::Vec>, + /// Maximum number of token IDs to return (default: 100, max: 1000) + #[prost(uint32, tag = "4")] + pub limit: u32, + /// Include facet counts in response + #[prost(bool, tag = "5")] + pub include_facets: bool, + /// Maximum number of facet rows to return (default: 100, max: 1000) + #[prost(uint32, tag = "6")] + pub facet_limit: u32, +} +/// Response for QueryTokensByAttributes RPC +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTokensByAttributesResponse { + /// Matched token IDs (U256 bytes) + #[prost(bytes = "vec", repeated, tag = "1")] + pub token_ids: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + /// Cursor for next page (absent if no more results) + #[prost(bytes = "vec", optional, tag = "2")] + pub next_cursor_token_id: ::core::option::Option<::prost::alloc::vec::Vec>, + /// Total number of matched token IDs (without pagination) + #[prost(uint64, tag = "3")] + pub total_hits: u64, + /// Facet counts over the matched set + #[prost(message, repeated, tag = "4")] + pub facets: ::prost::alloc::vec::Vec, +} /// Request for GetTokenMetadata RPC #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTokenMetadataRequest { @@ -276,6 +337,14 @@ pub mod erc1155_server { tonic::Response, tonic::Status, >; + /// Query token IDs by flattened metadata attributes (supports intersections) + async fn query_tokens_by_attributes( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; /// Server streaming response type for the SubscribeTransfers method. type SubscribeTransfersStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, @@ -511,6 +580,54 @@ pub mod erc1155_server { }; Box::pin(fut) } + "/torii.sinks.erc1155.Erc1155/QueryTokensByAttributes" => { + #[allow(non_camel_case_types)] + struct QueryTokensByAttributesSvc(pub Arc); + impl< + T: Erc1155, + > tonic::server::UnaryService + for QueryTokensByAttributesSvc { + type Response = super::QueryTokensByAttributesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryTokensByAttributesRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_tokens_by_attributes(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryTokensByAttributesSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/torii.sinks.erc1155.Erc1155/SubscribeTransfers" => { #[allow(non_camel_case_types)] struct SubscribeTransfersSvc(pub Arc); diff --git a/crates/torii-erc1155/src/grpc_service.rs b/crates/torii-erc1155/src/grpc_service.rs index a18a2fe..ed4009c 100644 --- a/crates/torii-erc1155/src/grpc_service.rs +++ b/crates/torii-erc1155/src/grpc_service.rs @@ -1,10 +1,11 @@ //! gRPC service implementation for ERC1155 queries and subscriptions use crate::proto::{ - erc1155_server::Erc1155 as Erc1155Trait, Cursor, GetBalanceRequest, GetBalanceResponse, - GetStatsRequest, GetStatsResponse, GetTokenMetadataRequest, GetTokenMetadataResponse, - GetTransfersRequest, GetTransfersResponse, SubscribeTransfersRequest, TokenMetadataEntry, - TokenTransfer, TransferFilter, TransferUpdate, + erc1155_server::Erc1155 as Erc1155Trait, AttributeFacetCount, Cursor, GetBalanceRequest, + GetBalanceResponse, GetStatsRequest, GetStatsResponse, GetTokenMetadataRequest, + GetTokenMetadataResponse, GetTransfersRequest, GetTransfersResponse, + QueryTokensByAttributesRequest, QueryTokensByAttributesResponse, SubscribeTransfersRequest, + TokenMetadataEntry, TokenTransfer, TransferFilter, TransferUpdate, }; use crate::storage::{Erc1155Storage, TokenTransferData, TransferCursor}; use async_trait::async_trait; @@ -167,6 +168,7 @@ impl Erc1155Trait for Erc1155Service { cursor, limit, ) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let proto_transfers: Vec = @@ -207,6 +209,7 @@ impl Erc1155Trait for Erc1155Service { let (balance, last_block) = self .storage .get_balance_with_block(contract, wallet, token_id) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))? .unwrap_or((U256::from(0u64), 0)); @@ -227,7 +230,7 @@ impl Erc1155Trait for Erc1155Service { let token = bytes_to_felt(&token_bytes) .ok_or_else(|| Status::invalid_argument("Invalid token address"))?; - let entries = match self.storage.get_token_metadata(token) { + let entries = match self.storage.get_token_metadata(token).await { Ok(Some((name, symbol, total_supply))) => vec![TokenMetadataEntry { token: token.to_bytes_be().to_vec(), name, @@ -254,6 +257,7 @@ impl Erc1155Trait for Erc1155Service { let (all, next_cursor) = self .storage .get_token_metadata_paginated(cursor, limit) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let entries = all @@ -272,6 +276,58 @@ impl Erc1155Trait for Erc1155Service { })) } + /// Query token IDs by flattened metadata attributes (OR within key, AND across keys). + async fn query_tokens_by_attributes( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + let token = bytes_to_felt(&req.token) + .ok_or_else(|| Status::invalid_argument("Invalid token address"))?; + let cursor_token_id = req.cursor_token_id.as_ref().map(|b| bytes_to_u256(b)); + let limit = if req.limit == 0 { + 100 + } else { + req.limit.min(1000) + }; + let facet_limit = if req.facet_limit == 0 { + 100 + } else { + req.facet_limit.min(1000) + }; + + let filters: Vec<(String, Vec)> = + req.filters.into_iter().map(|f| (f.key, f.values)).collect(); + + let result = self + .storage + .query_token_ids_by_attributes( + token, + &filters, + cursor_token_id, + limit, + req.include_facets, + facet_limit, + ) + .await + .map_err(|e| Status::internal(format!("Query failed: {e}")))?; + + Ok(Response::new(QueryTokensByAttributesResponse { + token_ids: result.token_ids.into_iter().map(u256_to_bytes).collect(), + next_cursor_token_id: result.next_cursor_token_id.map(u256_to_bytes), + total_hits: result.total_hits, + facets: result + .facets + .into_iter() + .map(|f| AttributeFacetCount { + key: f.key, + value: f.value, + count: f.count, + }) + .collect(), + })) + } + /// Subscribe to real-time transfer events type SubscribeTransfersStream = Pin> + Send>>; @@ -329,21 +385,25 @@ impl Erc1155Trait for Erc1155Service { let total_transfers = self .storage .get_transfer_count() + .await .map_err(|e| Status::internal(format!("Failed to get transfer count: {e}")))?; let unique_tokens = self .storage .get_token_count() + .await .map_err(|e| Status::internal(format!("Failed to get token count: {e}")))?; let unique_token_ids = self .storage .get_token_id_count() + .await .map_err(|e| Status::internal(format!("Failed to get token ID count: {e}")))?; let latest_block = self .storage .get_latest_block() + .await .map_err(|e| Status::internal(format!("Failed to get latest block: {e}")))? .unwrap_or(0); diff --git a/crates/torii-erc1155/src/sink.rs b/crates/torii-erc1155/src/sink.rs index 3e3219e..e2cd7f7 100644 --- a/crates/torii-erc1155/src/sink.rs +++ b/crates/torii-erc1155/src/sink.rs @@ -27,6 +27,7 @@ use prost_types::Any; use starknet::core::types::{Felt, U256}; use starknet::providers::jsonrpc::{HttpTransport, JsonRpcClient}; use std::collections::{HashMap, HashSet}; +use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; use torii::etl::sink::{EventBus, TopicInfo}; use torii::etl::{Envelope, ExtractionBatch, Sink, TypeId}; @@ -59,6 +60,10 @@ pub struct Erc1155Sink { metadata_fetcher: Option>, /// Token URI service sender for async URI fetching token_uri_sender: Option, + /// In-memory counters to avoid full-table COUNT(*) in the ingest hot path. + total_transfers: AtomicU64, + total_operator_approvals: AtomicU64, + total_uri_updates: AtomicU64, } impl Erc1155Sink { @@ -70,6 +75,10 @@ impl Erc1155Sink { balance_fetcher: None, metadata_fetcher: None, token_uri_sender: None, + // Avoid startup full-table COUNT(*) scans on large datasets. + total_transfers: AtomicU64::new(0), + total_operator_approvals: AtomicU64::new(0), + total_uri_updates: AtomicU64::new(0), } } @@ -229,6 +238,9 @@ impl Sink for Erc1155Sink { let mut transfers: Vec = Vec::new(); let mut operator_approvals: Vec = Vec::new(); let mut uri_updates: Vec = Vec::new(); + let mut inserted_transfers: u64 = 0; + let mut inserted_operator_approvals: u64 = 0; + let mut inserted_uri_updates: u64 = 0; // Get block timestamps from batch let block_timestamps: HashMap = batch @@ -326,7 +338,7 @@ impl Sink for Erc1155Sink { if let Some(ref fetcher) = self.metadata_fetcher { let new_tokens: HashSet = transfers.iter().map(|t| t.token).collect(); for token in new_tokens { - match self.storage.has_token_metadata(token) { + match self.storage.has_token_metadata(token).await { Ok(exists) => { if exists { continue; @@ -340,12 +352,16 @@ impl Sink for Erc1155Sink { symbol = ?meta.symbol, "Fetched token metadata" ); - if let Err(e) = self.storage.upsert_token_metadata( - token, - meta.name.as_deref(), - meta.symbol.as_deref(), - meta.total_supply, - ) { + if let Err(e) = self + .storage + .upsert_token_metadata( + token, + meta.name.as_deref(), + meta.symbol.as_deref(), + meta.total_supply, + ) + .await + { tracing::warn!( target: "torii_erc1155::sink", error = %e, @@ -391,6 +407,7 @@ impl Sink for Erc1155Sink { match self .storage .has_token_uri(transfer.token, transfer.token_id) + .await { Ok(false) => { sender @@ -415,7 +432,7 @@ impl Sink for Erc1155Sink { // Batch insert transfers if !transfers.is_empty() { - let transfer_count = match self.storage.insert_transfers_batch(&transfers) { + let transfer_count = match self.storage.insert_transfers_batch(&transfers).await { Ok(count) => count, Err(e) => { tracing::error!( @@ -429,6 +446,10 @@ impl Sink for Erc1155Sink { }; if transfer_count > 0 { + inserted_transfers = transfer_count as u64; + self.total_transfers + .fetch_add(inserted_transfers, Ordering::Relaxed); + tracing::info!( target: "torii_erc1155::sink", count = transfer_count, @@ -438,7 +459,11 @@ impl Sink for Erc1155Sink { // Update balances if balance tracking is enabled if let Some(ref fetcher) = self.balance_fetcher { // Step 1: Check which balances need adjustment (would go negative) - let adjustment_requests = match self.storage.check_balances_batch(&transfers) { + let adjustment_requests = match self + .storage + .check_balances_batch(&transfers) + .await + { Ok(requests) => requests, Err(e) => { tracing::warn!( @@ -486,6 +511,7 @@ impl Sink for Erc1155Sink { if let Err(e) = self .storage .apply_transfers_with_adjustments(&transfers, &adjustments) + .await { tracing::error!( target: "torii_erc1155::sink", @@ -549,8 +575,13 @@ impl Sink for Erc1155Sink { match self .storage .insert_operator_approvals_batch(&operator_approvals) + .await { Ok(count) => { + inserted_operator_approvals = count as u64; + self.total_operator_approvals + .fetch_add(inserted_operator_approvals, Ordering::Relaxed); + tracing::info!( target: "torii_erc1155::sink", count = count, @@ -571,8 +602,12 @@ impl Sink for Erc1155Sink { // Batch upsert token URI updates if !uri_updates.is_empty() { - match self.storage.upsert_token_uris_batch(&uri_updates) { + match self.storage.upsert_token_uris_batch(&uri_updates).await { Ok(count) => { + inserted_uri_updates = count as u64; + self.total_uri_updates + .fetch_add(inserted_uri_updates, Ordering::Relaxed); + tracing::info!( target: "torii_erc1155::sink", count = count, @@ -620,22 +655,19 @@ impl Sink for Erc1155Sink { } } - // Log combined statistics - if !transfers.is_empty() || !operator_approvals.is_empty() { - if let Ok(total_transfers) = self.storage.get_transfer_count() { - if let Ok(token_id_count) = self.storage.get_token_id_count() { - if let Ok(token_count) = self.storage.get_token_count() { - tracing::info!( - target: "torii_erc1155::sink", - transfers = total_transfers, - token_ids = token_id_count, - contracts = token_count, - blocks = batch.blocks.len(), - "Total statistics" - ); - } - } - } + // Log combined statistics without full-table scans. + if inserted_transfers > 0 || inserted_operator_approvals > 0 || inserted_uri_updates > 0 { + tracing::info!( + target: "torii_erc1155::sink", + batch_transfers = inserted_transfers, + batch_operator_approvals = inserted_operator_approvals, + batch_uri_updates = inserted_uri_updates, + total_transfers = self.total_transfers.load(Ordering::Relaxed), + total_operator_approvals = self.total_operator_approvals.load(Ordering::Relaxed), + total_uri_updates = self.total_uri_updates.load(Ordering::Relaxed), + blocks = batch.blocks.len(), + "Total statistics" + ); } Ok(()) diff --git a/crates/torii-erc1155/src/storage.rs b/crates/torii-erc1155/src/storage.rs index cd1d56a..7d029ab 100644 --- a/crates/torii-erc1155/src/storage.rs +++ b/crates/torii-erc1155/src/storage.rs @@ -11,6 +11,7 @@ use rusqlite::{params, Connection}; use starknet::core::types::{Felt, U256}; use std::collections::HashMap; use std::sync::{Arc, Mutex}; +use tokio_postgres::{types::ToSql as PgToSql, Client, NoTls}; use torii_common::{ blob_to_felt, blob_to_u256, felt_to_blob, u256_to_blob, TokenUriResult, TokenUriStore, }; @@ -19,7 +20,15 @@ use crate::balance_fetcher::Erc1155BalanceFetchRequest; /// Storage for ERC1155 token data pub struct Erc1155Storage { + backend: StorageBackend, conn: Arc>, + pg_conn: Option>>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum StorageBackend { + Sqlite, + Postgres, } /// Token transfer data for batch insertion @@ -67,6 +76,21 @@ pub struct TransferCursor { pub id: i64, } +/// Aggregated facet count for one key/value pair. +pub struct AttributeFacetCount { + pub key: String, + pub value: String, + pub count: u64, +} + +/// Result of token ID search by attributes. +pub struct TokenAttributeQueryResult { + pub token_ids: Vec, + pub next_cursor_token_id: Option, + pub total_hits: u64, + pub facets: Vec, +} + /// Balance data for a (contract, wallet, token_id) tuple #[derive(Debug, Clone)] pub struct Erc1155BalanceData { @@ -94,7 +118,129 @@ pub struct Erc1155BalanceAdjustment { impl Erc1155Storage { /// Create or open the database - pub fn new(db_path: &str) -> Result { + pub async fn new(db_path: &str) -> Result { + if db_path.starts_with("postgres://") || db_path.starts_with("postgresql://") { + let (client, connection) = tokio_postgres::connect(db_path, NoTls).await?; + tokio::spawn(async move { + if let Err(e) = connection.await { + tracing::error!(target: "torii_erc1155::storage", error = %e, "PostgreSQL connection task failed"); + } + }); + + client.batch_execute( + r" + CREATE SCHEMA IF NOT EXISTS erc1155; + + CREATE TABLE IF NOT EXISTS erc1155.token_transfers ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + operator BYTEA NOT NULL, + from_addr BYTEA NOT NULL, + to_addr BYTEA NOT NULL, + token_id BYTEA NOT NULL, + amount BYTEA NOT NULL, + is_batch BIGINT NOT NULL DEFAULT 0, + batch_index BIGINT NOT NULL DEFAULT 0, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT, + UNIQUE(token, tx_hash, token_id, from_addr, to_addr, batch_index) + ); + CREATE INDEX IF NOT EXISTS idx_token_transfers_token ON erc1155.token_transfers(token); + CREATE INDEX IF NOT EXISTS idx_token_transfers_from ON erc1155.token_transfers(from_addr); + CREATE INDEX IF NOT EXISTS idx_token_transfers_to ON erc1155.token_transfers(to_addr); + CREATE INDEX IF NOT EXISTS idx_token_transfers_block ON erc1155.token_transfers(block_number DESC); + CREATE INDEX IF NOT EXISTS idx_token_transfers_token_id ON erc1155.token_transfers(token, token_id); + + CREATE TABLE IF NOT EXISTS erc1155.token_wallet_activity ( + id BIGSERIAL PRIMARY KEY, + wallet_address BYTEA NOT NULL, + token BYTEA NOT NULL, + transfer_id BIGINT NOT NULL REFERENCES erc1155.token_transfers(id), + direction TEXT NOT NULL CHECK(direction IN ('sent', 'received', 'both')), + block_number BIGINT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_token_wallet_activity_wallet_block ON erc1155.token_wallet_activity(wallet_address, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_token_wallet_activity_wallet_token ON erc1155.token_wallet_activity(wallet_address, token, block_number DESC); + + CREATE TABLE IF NOT EXISTS erc1155.token_operators ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + owner BYTEA NOT NULL, + operator BYTEA NOT NULL, + approved BIGINT NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT, + UNIQUE(token, owner, operator) + ); + + CREATE TABLE IF NOT EXISTS erc1155.token_uris ( + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + uri TEXT, + metadata_json TEXT, + updated_at BIGINT NOT NULL DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + PRIMARY KEY (token, token_id) + ); + + CREATE TABLE IF NOT EXISTS erc1155.token_attributes ( + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + key TEXT NOT NULL, + value TEXT NOT NULL, + PRIMARY KEY (token, token_id, key) + ); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token ON erc1155.token_attributes(token); + CREATE INDEX IF NOT EXISTS idx_token_attributes_key ON erc1155.token_attributes(key); + CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON erc1155.token_attributes(key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_key_value ON erc1155.token_attributes(token, key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_token_id ON erc1155.token_attributes(token, token_id); + + CREATE TABLE IF NOT EXISTS erc1155.erc1155_balances ( + id BIGSERIAL PRIMARY KEY, + contract BYTEA NOT NULL, + wallet BYTEA NOT NULL, + token_id BYTEA NOT NULL, + balance BYTEA NOT NULL, + last_block BIGINT NOT NULL, + updated_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + UNIQUE(contract, wallet, token_id) + ); + CREATE INDEX IF NOT EXISTS idx_erc1155_balances_contract ON erc1155.erc1155_balances(contract); + CREATE INDEX IF NOT EXISTS idx_erc1155_balances_wallet ON erc1155.erc1155_balances(wallet); + CREATE INDEX IF NOT EXISTS idx_erc1155_balances_contract_wallet ON erc1155.erc1155_balances(contract, wallet); + + CREATE TABLE IF NOT EXISTS erc1155.erc1155_balance_adjustments ( + id BIGSERIAL PRIMARY KEY, + contract BYTEA NOT NULL, + wallet BYTEA NOT NULL, + token_id BYTEA NOT NULL, + computed_balance BYTEA NOT NULL, + actual_balance BYTEA NOT NULL, + adjusted_at_block BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + created_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT) + ); + CREATE INDEX IF NOT EXISTS idx_erc1155_adjustments_wallet ON erc1155.erc1155_balance_adjustments(wallet); + + CREATE TABLE IF NOT EXISTS erc1155.token_metadata ( + token BYTEA PRIMARY KEY, + name TEXT, + symbol TEXT, + total_supply BYTEA + ); + ", + ).await?; + + tracing::info!(target: "torii_erc1155::storage", "PostgreSQL storage initialized"); + return Ok(Self { + backend: StorageBackend::Postgres, + conn: Arc::new(Mutex::new(Connection::open_in_memory()?)), + pg_conn: Some(Arc::new(tokio::sync::Mutex::new(client))), + }); + } + let conn = Connection::open(db_path)?; // Enable WAL mode + Performance PRAGMAs @@ -105,6 +251,7 @@ impl Erc1155Storage { PRAGMA cache_size=-64000; PRAGMA temp_store=MEMORY; PRAGMA mmap_size=268435456; + PRAGMA wal_autocheckpoint=10000; PRAGMA page_size=4096; PRAGMA busy_timeout=5000;", )?; @@ -222,7 +369,9 @@ impl Erc1155Storage { ); CREATE INDEX IF NOT EXISTS idx_token_attributes_token ON token_attributes(token); CREATE INDEX IF NOT EXISTS idx_token_attributes_key ON token_attributes(key); - CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON token_attributes(key, value);", + CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON token_attributes(key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_key_value ON token_attributes(token, key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_token_id ON token_attributes(token, token_id);", )?; // Balance tracking tables @@ -293,12 +442,17 @@ impl Erc1155Storage { tracing::info!(target: "torii_erc1155::storage", db_path = %db_path, "ERC1155 database initialized"); Ok(Self { + backend: StorageBackend::Sqlite, conn: Arc::new(Mutex::new(conn)), + pg_conn: None, }) } /// Insert multiple transfers in a single transaction - pub fn insert_transfers_batch(&self, transfers: &[TokenTransferData]) -> Result { + pub async fn insert_transfers_batch(&self, transfers: &[TokenTransferData]) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_transfers_batch(transfers).await; + } if transfers.is_empty() { return Ok(0); } @@ -313,6 +467,18 @@ impl Erc1155Storage { "INSERT OR IGNORE INTO token_transfers (token, operator, from_addr, to_addr, token_id, amount, is_batch, batch_index, block_number, tx_hash, timestamp) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, COALESCE(?11, strftime('%s', 'now')))", )?; + let mut wallet_both_stmt = tx.prepare_cached( + "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'both', ?4)", + )?; + let mut wallet_sent_stmt = tx.prepare_cached( + "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'sent', ?4)", + )?; + let mut wallet_received_stmt = tx.prepare_cached( + "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'received', ?4)", + )?; for transfer in transfers { let token_blob = felt_to_blob(transfer.token); @@ -346,25 +512,28 @@ impl Erc1155Storage { && transfer.to != Felt::ZERO && transfer.from == transfer.to { - tx.execute( - "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'both', ?)", - params![&from_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_both_stmt.execute(params![ + &from_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } else { if transfer.from != Felt::ZERO { - tx.execute( - "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'sent', ?)", - params![&from_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_sent_stmt.execute(params![ + &from_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } if transfer.to != Felt::ZERO { - tx.execute( - "INSERT INTO token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'received', ?)", - params![&to_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_received_stmt.execute(params![ + &to_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } } } @@ -376,10 +545,13 @@ impl Erc1155Storage { } /// Insert operator approvals in a single transaction - pub fn insert_operator_approvals_batch( + pub async fn insert_operator_approvals_batch( &self, approvals: &[OperatorApprovalData], ) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_operator_approvals_batch(approvals).await; + } if approvals.is_empty() { return Ok(0); } @@ -420,7 +592,10 @@ impl Erc1155Storage { } /// Insert or update token URIs in a single transaction - pub fn upsert_token_uris_batch(&self, uris: &[TokenUriData]) -> Result { + pub async fn upsert_token_uris_batch(&self, uris: &[TokenUriData]) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_upsert_token_uris_batch(uris).await; + } if uris.is_empty() { return Ok(0); } @@ -453,7 +628,7 @@ impl Erc1155Storage { } /// Get filtered transfers with cursor-based pagination - pub fn get_transfers_filtered( + pub async fn get_transfers_filtered( &self, wallet: Option, from: Option, @@ -466,6 +641,14 @@ impl Erc1155Storage { cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_transfers_filtered( + wallet, from, to, operator, tokens, token_ids, block_from, block_to, cursor, + limit, + ) + .await; + } let conn = self.conn.lock().unwrap(); let mut query = String::new(); @@ -594,8 +777,135 @@ impl Erc1155Storage { Ok((transfers, next_cursor)) } + /// Query token IDs by flattened metadata attributes. + /// + /// Filter semantics: + /// - OR within a single key (`values`) + /// - AND across keys (`filters`) + pub async fn query_token_ids_by_attributes( + &self, + token: Felt, + filters: &[(String, Vec)], + cursor_token_id: Option, + limit: u32, + include_facets: bool, + facet_limit: u32, + ) -> Result { + let filters = Self::normalize_attribute_filters(filters); + let page_limit = limit.clamp(1, 1000); + let page_fetch = page_limit as i64 + 1; + let facet_limit = facet_limit.clamp(1, 1000) as i64; + + if self.backend == StorageBackend::Postgres { + return self + .pg_query_token_ids_by_attributes( + token, + &filters, + cursor_token_id, + page_fetch, + include_facets, + facet_limit, + ) + .await; + } + + let conn = self.conn.lock().unwrap(); + + let mut query = String::from("SELECT u.token_id FROM token_uris u WHERE u.token = ?"); + let mut params: Vec> = vec![Box::new(felt_to_blob(token))]; + if let Some(cursor) = cursor_token_id { + query.push_str(" AND u.token_id > ?"); + params.push(Box::new(u256_to_blob(cursor))); + } + Self::sqlite_append_attribute_exists_filters(&mut query, &mut params, &filters, "u"); + query.push_str(" ORDER BY u.token_id ASC LIMIT ?"); + params.push(Box::new(page_fetch)); + + let mut stmt = conn.prepare(&query)?; + let params_refs: Vec<&dyn rusqlite::ToSql> = + params.iter().map(std::convert::AsRef::as_ref).collect(); + let rows = stmt.query_map(params_refs.as_slice(), |row| row.get::<_, Vec>(0))?; + let mut token_ids: Vec = rows + .collect::>, _>>()? + .into_iter() + .map(|b| blob_to_u256(&b)) + .collect(); + + let next_cursor_token_id = if token_ids.len() > page_limit as usize { + let next = token_ids[page_limit as usize]; + token_ids.truncate(page_limit as usize); + Some(next) + } else { + None + }; + + let mut count_query = String::from("SELECT COUNT(*) FROM token_uris u WHERE u.token = ?"); + let mut count_params: Vec> = vec![Box::new(felt_to_blob(token))]; + Self::sqlite_append_attribute_exists_filters( + &mut count_query, + &mut count_params, + &filters, + "u", + ); + let count_refs: Vec<&dyn rusqlite::ToSql> = count_params + .iter() + .map(std::convert::AsRef::as_ref) + .collect(); + let total_hits: i64 = + conn.query_row(&count_query, count_refs.as_slice(), |row| row.get(0))?; + + let facets = if include_facets { + let mut facet_query = String::from( + "SELECT a.key, a.value, COUNT(*) AS cnt + FROM token_attributes a + JOIN token_uris u ON u.token = a.token AND u.token_id = a.token_id + WHERE u.token = ?", + ); + let mut facet_params: Vec> = + vec![Box::new(felt_to_blob(token))]; + Self::sqlite_append_attribute_exists_filters( + &mut facet_query, + &mut facet_params, + &filters, + "u", + ); + facet_query.push_str( + " GROUP BY a.key, a.value + ORDER BY cnt DESC, a.key ASC, a.value ASC + LIMIT ?", + ); + facet_params.push(Box::new(facet_limit)); + + let facet_refs: Vec<&dyn rusqlite::ToSql> = facet_params + .iter() + .map(std::convert::AsRef::as_ref) + .collect(); + let mut stmt = conn.prepare(&facet_query)?; + let rows = stmt.query_map(facet_refs.as_slice(), |row| { + Ok(AttributeFacetCount { + key: row.get(0)?, + value: row.get(1)?, + count: row.get::<_, i64>(2)? as u64, + }) + })?; + rows.collect::, _>>()? + } else { + Vec::new() + }; + + Ok(TokenAttributeQueryResult { + token_ids, + next_cursor_token_id, + total_hits: total_hits as u64, + facets, + }) + } + /// Get transfer count - pub fn get_transfer_count(&self) -> Result { + pub async fn get_transfer_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_transfer_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM token_transfers", [], |row| row.get(0))?; @@ -603,7 +913,10 @@ impl Erc1155Storage { } /// Get unique token contract count - pub fn get_token_count(&self) -> Result { + pub async fn get_token_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row( "SELECT COUNT(DISTINCT token) FROM token_transfers", @@ -614,7 +927,10 @@ impl Erc1155Storage { } /// Get unique token ID count - pub fn get_token_id_count(&self) -> Result { + pub async fn get_token_id_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_id_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row( "SELECT COUNT(DISTINCT token || token_id) FROM token_transfers", @@ -625,7 +941,10 @@ impl Erc1155Storage { } /// Get latest block number indexed - pub fn get_latest_block(&self) -> Result> { + pub async fn get_latest_block(&self) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_latest_block().await; + } let conn = self.conn.lock().unwrap(); let block: Option = conn .query_row("SELECT MAX(block_number) FROM token_transfers", [], |row| { @@ -638,12 +957,15 @@ impl Erc1155Storage { // ===== Balance Tracking Methods ===== /// Get current balance for a (contract, wallet, token_id) tuple - pub fn get_balance( + pub async fn get_balance( &self, contract: Felt, wallet: Felt, token_id: U256, ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_balance(contract, wallet, token_id).await; + } let conn = self.conn.lock().unwrap(); let contract_blob = felt_to_blob(contract); let wallet_blob = felt_to_blob(wallet); @@ -662,12 +984,17 @@ impl Erc1155Storage { } /// Get balance with last block info for a (contract, wallet, token_id) tuple - pub fn get_balance_with_block( + pub async fn get_balance_with_block( &self, contract: Felt, wallet: Felt, token_id: U256, ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_balance_with_block(contract, wallet, token_id) + .await; + } let conn = self.conn.lock().unwrap(); let contract_blob = felt_to_blob(contract); let wallet_blob = felt_to_blob(wallet); @@ -686,10 +1013,13 @@ impl Erc1155Storage { } /// Get balances for multiple (contract, wallet, token_id) tuples in a single query - pub fn get_balances_batch( + pub async fn get_balances_batch( &self, tuples: &[(Felt, Felt, U256)], ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_balances_batch(tuples).await; + } if tuples.is_empty() { return Ok(HashMap::new()); } @@ -725,7 +1055,7 @@ impl Erc1155Storage { /// /// For each transfer, checks if the sender's current balance would go negative. /// Returns Erc1155BalanceFetchRequests for wallets that need adjustment. - pub fn check_balances_batch( + pub async fn check_balances_batch( &self, transfers: &[TokenTransferData], ) -> Result> { @@ -744,7 +1074,7 @@ impl Erc1155Storage { .collect(); // Get current balances for all senders - let current_balances = self.get_balances_batch(&sender_tuples)?; + let current_balances = self.get_balances_batch(&sender_tuples).await?; // Track running balance changes within this batch let mut pending_debits: HashMap<(Felt, Felt, U256), U256> = HashMap::new(); @@ -816,11 +1146,16 @@ impl Erc1155Storage { /// # Arguments /// * `transfers` - The transfers to apply /// * `adjustments` - Map of (contract, wallet, token_id) -> actual_balance fetched from RPC - pub fn apply_transfers_with_adjustments( + pub async fn apply_transfers_with_adjustments( &self, transfers: &[TokenTransferData], adjustments: &HashMap<(Felt, Felt, U256), U256>, ) -> Result<()> { + if self.backend == StorageBackend::Postgres { + return self + .pg_apply_transfers_with_adjustments(transfers, adjustments) + .await; + } if transfers.is_empty() { return Ok(()); } @@ -1010,7 +1345,10 @@ impl Erc1155Storage { } /// Get adjustment count (for statistics) - pub fn get_adjustment_count(&self) -> Result { + pub async fn get_adjustment_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_adjustment_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row( "SELECT COUNT(*) FROM erc1155_balance_adjustments", @@ -1021,7 +1359,10 @@ impl Erc1155Storage { } /// Get unique wallet count with balances - pub fn get_wallet_count(&self) -> Result { + pub async fn get_wallet_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_wallet_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row( "SELECT COUNT(DISTINCT wallet) FROM erc1155_balances", @@ -1034,7 +1375,10 @@ impl Erc1155Storage { // ===== Token Metadata Methods ===== /// Check if metadata exists for a token - pub fn has_token_metadata(&self, token: Felt) -> Result { + pub async fn has_token_metadata(&self, token: Felt) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let count: i64 = conn.query_row( @@ -1046,13 +1390,18 @@ impl Erc1155Storage { } /// Insert or update token metadata - pub fn upsert_token_metadata( + pub async fn upsert_token_metadata( &self, token: Felt, name: Option<&str>, symbol: Option<&str>, total_supply: Option, ) -> Result<()> { + if self.backend == StorageBackend::Postgres { + return self + .pg_upsert_token_metadata(token, name, symbol, total_supply) + .await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let supply_blob = total_supply.map(u256_to_blob); @@ -1069,10 +1418,13 @@ impl Erc1155Storage { } /// Get token metadata - pub fn get_token_metadata( + pub async fn get_token_metadata( &self, token: Felt, ) -> Result, Option, Option)>> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let result = conn @@ -1091,9 +1443,12 @@ impl Erc1155Storage { } /// Get all token metadata - pub fn get_all_token_metadata( + pub async fn get_all_token_metadata( &self, ) -> Result, Option, Option)>> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_all_token_metadata().await; + } let conn = self.conn.lock().unwrap(); let mut stmt = conn.prepare("SELECT token, name, symbol, total_supply FROM token_metadata")?; @@ -1115,7 +1470,7 @@ impl Erc1155Storage { /// Get token metadata with cursor-based pagination. /// /// Returns at most `limit` rows and an optional next cursor token. - pub fn get_token_metadata_paginated( + pub async fn get_token_metadata_paginated( &self, cursor: Option, limit: u32, @@ -1123,6 +1478,9 @@ impl Erc1155Storage { Vec<(Felt, Option, Option, Option)>, Option, )> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata_paginated(cursor, limit).await; + } let conn = self.conn.lock().unwrap(); let fetch_limit = limit.clamp(1, 1000) as usize + 1; @@ -1183,7 +1541,10 @@ impl Erc1155Storage { } /// Returns true if a token URI row exists for `(token, token_id)`. - pub fn has_token_uri(&self, token: Felt, token_id: U256) -> Result { + pub async fn has_token_uri(&self, token: Felt, token_id: U256) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_uri(token, token_id).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let token_id_blob = u256_to_blob(token_id); @@ -1194,11 +1555,1001 @@ impl Erc1155Storage { )?; Ok(count > 0) } + + async fn pg_client(&self) -> Result> { + let conn = self + .pg_conn + .as_ref() + .ok_or_else(|| anyhow::anyhow!("PostgreSQL connection not initialized"))?; + Ok(conn.lock().await) + } + + fn pg_next_param( + params: &mut Vec>, + value: impl PgToSql + Sync + Send + 'static, + ) -> String { + params.push(Box::new(value)); + format!("${}", params.len()) + } + + fn normalize_attribute_filters( + filters: &[(String, Vec)], + ) -> Vec<(String, Vec)> { + filters + .iter() + .filter_map(|(key, values)| { + let key = key.trim(); + if key.is_empty() { + return None; + } + + let mut out_values: Vec = Vec::new(); + for value in values { + let value = value.trim(); + if value.is_empty() || out_values.iter().any(|v| v == value) { + continue; + } + out_values.push(value.to_owned()); + } + + if out_values.is_empty() { + None + } else { + Some((key.to_owned(), out_values)) + } + }) + .collect() + } + + fn sqlite_append_attribute_exists_filters( + query: &mut String, + params: &mut Vec>, + filters: &[(String, Vec)], + parent_alias: &str, + ) { + for (key, values) in filters { + query.push_str(&format!( + " AND EXISTS ( + SELECT 1 FROM token_attributes a + WHERE a.token = {parent_alias}.token + AND a.token_id = {parent_alias}.token_id + AND a.key = ? AND a.value IN (" + )); + params.push(Box::new(key.clone())); + let placeholders = values.iter().map(|_| "?").collect::>().join(","); + query.push_str(&placeholders); + query.push_str("))"); + for value in values { + params.push(Box::new(value.clone())); + } + } + } + + fn pg_append_attribute_exists_filters( + query: &mut String, + params: &mut Vec>, + filters: &[(String, Vec)], + parent_alias: &str, + ) { + for (key, values) in filters { + query.push_str(&format!( + " AND EXISTS ( + SELECT 1 FROM erc1155.token_attributes a + WHERE a.token = {parent_alias}.token + AND a.token_id = {parent_alias}.token_id + AND a.key = " + )); + query.push_str(&Self::pg_next_param(params, key.clone())); + query.push_str(" AND a.value IN ("); + let value_placeholders = values + .iter() + .map(|value| Self::pg_next_param(params, value.clone())) + .collect::>() + .join(","); + query.push_str(&value_placeholders); + query.push_str("))"); + } + } + + async fn pg_insert_transfers_batch(&self, transfers: &[TokenTransferData]) -> Result { + if transfers.is_empty() { + return Ok(0); + } + + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + + for transfer in transfers { + let token_blob = felt_to_blob(transfer.token); + let operator_blob = felt_to_blob(transfer.operator); + let from_blob = felt_to_blob(transfer.from); + let to_blob = felt_to_blob(transfer.to); + let token_id_blob = u256_to_blob(transfer.token_id); + let amount_blob = u256_to_blob(transfer.amount); + let tx_hash_blob = felt_to_blob(transfer.tx_hash); + let ts = transfer + .timestamp + .unwrap_or_else(|| chrono::Utc::now().timestamp()); + + let row = tx.query_opt( + "INSERT INTO erc1155.token_transfers + (token, operator, from_addr, to_addr, token_id, amount, is_batch, batch_index, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) + ON CONFLICT (token, tx_hash, token_id, from_addr, to_addr, batch_index) DO NOTHING + RETURNING id", + &[ + &token_blob, + &operator_blob, + &from_blob, + &to_blob, + &token_id_blob, + &amount_blob, + &((transfer.is_batch as i32) as i64), + &(transfer.batch_index as i64), + &(transfer.block_number as i64), + &tx_hash_blob, + &ts, + ], + ).await?; + + if let Some(row) = row { + inserted += 1; + let transfer_id: i64 = row.get(0); + + if transfer.from != Felt::ZERO + && transfer.to != Felt::ZERO + && transfer.from == transfer.to + { + tx.execute( + "INSERT INTO erc1155.token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'both', $4)", + &[ + &from_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ).await?; + } else { + if transfer.from != Felt::ZERO { + tx.execute( + "INSERT INTO erc1155.token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'sent', $4)", + &[ + &from_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ).await?; + } + if transfer.to != Felt::ZERO { + tx.execute( + "INSERT INTO erc1155.token_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'received', $4)", + &[ + &to_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ).await?; + } + } + } + } + + tx.commit().await?; + Ok(inserted) + } + + async fn pg_insert_operator_approvals_batch( + &self, + approvals: &[OperatorApprovalData], + ) -> Result { + if approvals.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + + for approval in approvals { + tx.execute( + "INSERT INTO erc1155.token_operators (token, owner, operator, approved, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (token, owner, operator) DO UPDATE SET + approved = EXCLUDED.approved, + block_number = EXCLUDED.block_number, + tx_hash = EXCLUDED.tx_hash, + timestamp = EXCLUDED.timestamp", + &[ + &felt_to_blob(approval.token), + &felt_to_blob(approval.owner), + &felt_to_blob(approval.operator), + &((approval.approved as i32) as i64), + &(approval.block_number as i64), + &felt_to_blob(approval.tx_hash), + &approval + .timestamp + .unwrap_or_else(|| chrono::Utc::now().timestamp()), + ], + ).await?; + inserted += 1; + } + + tx.commit().await?; + Ok(inserted) + } + + async fn pg_upsert_token_uris_batch(&self, uris: &[TokenUriData]) -> Result { + if uris.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut updated = 0usize; + + for entry in uris { + let rows = tx + .execute( + "INSERT INTO erc1155.token_uris (token, token_id, uri, updated_at) + VALUES ($1, $2, $3, EXTRACT(EPOCH FROM NOW())::BIGINT) + ON CONFLICT(token, token_id) DO UPDATE SET + uri = EXCLUDED.uri, + updated_at = EXCLUDED.updated_at", + &[ + &felt_to_blob(entry.token), + &u256_to_blob(entry.token_id), + &entry.uri, + ], + ) + .await?; + if rows > 0 { + updated += 1; + } + } + + tx.commit().await?; + Ok(updated) + } + + #[allow(clippy::too_many_arguments)] + async fn pg_get_transfers_filtered( + &self, + wallet: Option, + from: Option, + to: Option, + operator: Option, + tokens: &[Felt], + token_ids: &[U256], + block_from: Option, + block_to: Option, + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::new(); + let mut params: Vec> = Vec::new(); + + if let Some(wallet_addr) = wallet { + query.push_str( + "SELECT DISTINCT t.id, t.token, t.operator, t.from_addr, t.to_addr, t.token_id, t.amount, t.is_batch, t.batch_index, t.block_number, t.tx_hash, t.timestamp + FROM erc1155.token_wallet_activity wa + JOIN erc1155.token_transfers t ON wa.transfer_id = t.id + WHERE wa.wallet_address = ", + ); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(wallet_addr))); + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND wa.token IN ({list})")); + } + } else { + query.push_str( + "SELECT t.id, t.token, t.operator, t.from_addr, t.to_addr, t.token_id, t.amount, t.is_batch, t.batch_index, t.block_number, t.tx_hash, t.timestamp + FROM erc1155.token_transfers t + WHERE 1=1", + ); + if let Some(from_addr) = from { + query.push_str(" AND t.from_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(from_addr))); + } + if let Some(to_addr) = to { + query.push_str(" AND t.to_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(to_addr))); + } + if let Some(op_addr) = operator { + query.push_str(" AND t.operator = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(op_addr))); + } + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND t.token IN ({list})")); + } + } + + if !token_ids.is_empty() { + let list = token_ids + .iter() + .map(|tid| Self::pg_next_param(&mut params, u256_to_blob(*tid))) + .collect::>() + .join(","); + query.push_str(&format!(" AND t.token_id IN ({list})")); + } + if let Some(block_min) = block_from { + query.push_str(" AND t.block_number >= "); + query.push_str(&Self::pg_next_param(&mut params, block_min as i64)); + } + if let Some(block_max) = block_to { + query.push_str(" AND t.block_number <= "); + query.push_str(&Self::pg_next_param(&mut params, block_max as i64)); + } + if let Some(c) = cursor { + let p1 = Self::pg_next_param(&mut params, c.block_number as i64); + let p2 = Self::pg_next_param(&mut params, c.block_number as i64); + let p3 = Self::pg_next_param(&mut params, c.id); + query.push_str(&format!( + " AND (t.block_number < {p1} OR (t.block_number = {p2} AND t.id < {p3}))" + )); + } + query.push_str(" ORDER BY t.block_number DESC, t.id DESC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, limit as i64)); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let transfers: Vec = rows + .into_iter() + .map(|row| TokenTransferData { + id: Some(row.get::(0)), + token: blob_to_felt(&row.get::>(1)), + operator: blob_to_felt(&row.get::>(2)), + from: blob_to_felt(&row.get::>(3)), + to: blob_to_felt(&row.get::>(4)), + token_id: blob_to_u256(&row.get::>(5)), + amount: blob_to_u256(&row.get::>(6)), + is_batch: row.get::(7) != 0, + batch_index: row.get::(8) as u32, + block_number: row.get::(9) as u64, + tx_hash: blob_to_felt(&row.get::>(10)), + timestamp: Some(row.get::(11)), + }) + .collect(); + + let next_cursor = if transfers.len() == limit as usize { + transfers.last().map(|t| TransferCursor { + block_number: t.block_number, + id: t.id.unwrap_or_default(), + }) + } else { + None + }; + + Ok((transfers, next_cursor)) + } + + async fn pg_query_token_ids_by_attributes( + &self, + token: Felt, + filters: &[(String, Vec)], + cursor_token_id: Option, + page_fetch: i64, + include_facets: bool, + facet_limit: i64, + ) -> Result { + let client = self.pg_client().await?; + + let mut query = + String::from("SELECT u.token_id FROM erc1155.token_uris u WHERE u.token = "); + let mut params: Vec> = Vec::new(); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(token))); + if let Some(cursor) = cursor_token_id { + query.push_str(" AND u.token_id > "); + query.push_str(&Self::pg_next_param(&mut params, u256_to_blob(cursor))); + } + Self::pg_append_attribute_exists_filters(&mut query, &mut params, filters, "u"); + query.push_str(" ORDER BY u.token_id ASC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, page_fetch)); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let mut token_ids: Vec = rows + .into_iter() + .map(|row| blob_to_u256(&row.get::>(0))) + .collect(); + + let page_limit = (page_fetch - 1) as usize; + let next_cursor_token_id = if token_ids.len() > page_limit { + let next = token_ids[page_limit]; + token_ids.truncate(page_limit); + Some(next) + } else { + None + }; + + let mut count_query = + String::from("SELECT COUNT(*) FROM erc1155.token_uris u WHERE u.token = "); + let mut count_params: Vec> = Vec::new(); + count_query.push_str(&Self::pg_next_param(&mut count_params, felt_to_blob(token))); + Self::pg_append_attribute_exists_filters(&mut count_query, &mut count_params, filters, "u"); + let count_refs: Vec<&(dyn PgToSql + Sync)> = count_params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let total_row = client.query_one(&count_query, &count_refs).await?; + let total_hits = total_row.get::(0) as u64; + + let facets = if include_facets { + let mut facet_query = String::from( + "SELECT a.key, a.value, COUNT(*) AS cnt + FROM erc1155.token_attributes a + JOIN erc1155.token_uris u ON u.token = a.token AND u.token_id = a.token_id + WHERE u.token = ", + ); + let mut facet_params: Vec> = Vec::new(); + facet_query.push_str(&Self::pg_next_param(&mut facet_params, felt_to_blob(token))); + Self::pg_append_attribute_exists_filters( + &mut facet_query, + &mut facet_params, + filters, + "u", + ); + facet_query.push_str( + " GROUP BY a.key, a.value + ORDER BY cnt DESC, a.key ASC, a.value ASC + LIMIT ", + ); + facet_query.push_str(&Self::pg_next_param(&mut facet_params, facet_limit)); + let facet_refs: Vec<&(dyn PgToSql + Sync)> = facet_params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&facet_query, &facet_refs).await?; + rows.into_iter() + .map(|row| AttributeFacetCount { + key: row.get(0), + value: row.get(1), + count: row.get::(2) as u64, + }) + .collect() + } else { + Vec::new() + }; + + Ok(TokenAttributeQueryResult { + token_ids, + next_cursor_token_id, + total_hits, + facets, + }) + } + + async fn pg_get_transfer_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(*) FROM erc1155.token_transfers", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_token_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(DISTINCT token) FROM erc1155.token_transfers", + &[], + ) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_token_id_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client.query_one( + "SELECT COUNT(*) FROM (SELECT DISTINCT token, token_id FROM erc1155.token_transfers) t", + &[], + ).await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_latest_block(&self) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT MAX(block_number) FROM erc1155.token_transfers", &[]) + .await?; + let v: Option = row.get(0); + Ok(v.map(|x| x as u64)) + } + + async fn pg_get_balance( + &self, + contract: Felt, + wallet: Felt, + token_id: U256, + ) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT balance FROM erc1155.erc1155_balances + WHERE contract = $1 AND wallet = $2 AND token_id = $3", + &[ + &felt_to_blob(contract), + &felt_to_blob(wallet), + &u256_to_blob(token_id), + ], + ) + .await?; + Ok(row.map(|r| blob_to_u256(&r.get::>(0)))) + } + + async fn pg_get_balance_with_block( + &self, + contract: Felt, + wallet: Felt, + token_id: U256, + ) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT balance, last_block FROM erc1155.erc1155_balances + WHERE contract = $1 AND wallet = $2 AND token_id = $3", + &[ + &felt_to_blob(contract), + &felt_to_blob(wallet), + &u256_to_blob(token_id), + ], + ) + .await?; + Ok(row.map(|r| { + ( + blob_to_u256(&r.get::>(0)), + r.get::(1) as u64, + ) + })) + } + + async fn pg_get_balances_batch( + &self, + tuples: &[(Felt, Felt, U256)], + ) -> Result> { + if tuples.is_empty() { + return Ok(HashMap::new()); + } + + let client = self.pg_client().await?; + let mut result = HashMap::new(); + + for (contract, wallet, token_id) in tuples { + let row = client + .query_opt( + "SELECT balance FROM erc1155.erc1155_balances + WHERE contract = $1 AND wallet = $2 AND token_id = $3", + &[ + &felt_to_blob(*contract), + &felt_to_blob(*wallet), + &u256_to_blob(*token_id), + ], + ) + .await?; + + if let Some(row) = row { + result.insert( + (*contract, *wallet, *token_id), + blob_to_u256(&row.get::>(0)), + ); + } + } + + Ok(result) + } + + async fn pg_apply_transfers_with_adjustments( + &self, + transfers: &[TokenTransferData], + adjustments: &HashMap<(Felt, Felt, U256), U256>, + ) -> Result<()> { + if transfers.is_empty() { + return Ok(()); + } + + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut balance_cache: HashMap<(Felt, Felt, U256), U256> = HashMap::new(); + + for transfer in transfers { + if transfer.from != Felt::ZERO { + let key = (transfer.token, transfer.from, transfer.token_id); + if let std::collections::hash_map::Entry::Vacant(e) = balance_cache.entry(key) { + let row = tx + .query_opt( + "SELECT balance FROM erc1155.erc1155_balances + WHERE contract = $1 AND wallet = $2 AND token_id = $3", + &[ + &felt_to_blob(transfer.token), + &felt_to_blob(transfer.from), + &u256_to_blob(transfer.token_id), + ], + ) + .await?; + let balance = row + .map(|r| blob_to_u256(&r.get::>(0))) + .unwrap_or(U256::from(0u64)); + e.insert(balance); + } + } + + if transfer.to != Felt::ZERO { + let key = (transfer.token, transfer.to, transfer.token_id); + if let std::collections::hash_map::Entry::Vacant(e) = balance_cache.entry(key) { + let row = tx + .query_opt( + "SELECT balance FROM erc1155.erc1155_balances + WHERE contract = $1 AND wallet = $2 AND token_id = $3", + &[ + &felt_to_blob(transfer.token), + &felt_to_blob(transfer.to), + &u256_to_blob(transfer.token_id), + ], + ) + .await?; + let balance = row + .map(|r| blob_to_u256(&r.get::>(0))) + .unwrap_or(U256::from(0u64)); + e.insert(balance); + } + } + } + + let mut adjustments_to_record: Vec = Vec::new(); + for ((contract, wallet, token_id), actual_balance) in adjustments { + let key = (*contract, *wallet, *token_id); + let computed = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + + if computed != *actual_balance { + let triggering_transfer = transfers + .iter() + .find(|t| t.token == *contract && t.from == *wallet && t.token_id == *token_id); + + if let Some(transfer) = triggering_transfer { + adjustments_to_record.push(Erc1155BalanceAdjustment { + contract: *contract, + wallet: *wallet, + token_id: *token_id, + computed_balance: computed, + actual_balance: *actual_balance, + adjusted_at_block: transfer.block_number, + tx_hash: transfer.tx_hash, + }); + } + } + + balance_cache.insert(key, *actual_balance); + } + + let mut last_block_per_key: HashMap<(Felt, Felt, U256), u64> = HashMap::new(); + for transfer in transfers { + if transfer.from != Felt::ZERO { + let key = (transfer.token, transfer.from, transfer.token_id); + let current = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + let new_balance = if current >= transfer.amount { + current - transfer.amount + } else { + U256::from(0u64) + }; + balance_cache.insert(key, new_balance); + last_block_per_key.insert(key, transfer.block_number); + } + + if transfer.to != Felt::ZERO { + let key = (transfer.token, transfer.to, transfer.token_id); + let current = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + let new_balance = current + transfer.amount; + balance_cache.insert(key, new_balance); + last_block_per_key.insert(key, transfer.block_number); + } + } + + for ((contract, wallet, token_id), balance) in &balance_cache { + let last_block = last_block_per_key + .get(&(*contract, *wallet, *token_id)) + .copied() + .unwrap_or(0); + + tx.execute( + "INSERT INTO erc1155.erc1155_balances (contract, wallet, token_id, balance, last_block) + VALUES ($1, $2, $3, $4, $5) + ON CONFLICT(contract, wallet, token_id) DO UPDATE SET + balance = EXCLUDED.balance, + last_block = EXCLUDED.last_block, + updated_at = EXTRACT(EPOCH FROM NOW())::BIGINT", + &[ + &felt_to_blob(*contract), + &felt_to_blob(*wallet), + &u256_to_blob(*token_id), + &u256_to_blob(*balance), + &(last_block as i64), + ], + ).await?; + } + + for adj in &adjustments_to_record { + tx.execute( + "INSERT INTO erc1155.erc1155_balance_adjustments + (contract, wallet, token_id, computed_balance, actual_balance, adjusted_at_block, tx_hash) + VALUES ($1, $2, $3, $4, $5, $6, $7)", + &[ + &felt_to_blob(adj.contract), + &felt_to_blob(adj.wallet), + &u256_to_blob(adj.token_id), + &u256_to_blob(adj.computed_balance), + &u256_to_blob(adj.actual_balance), + &(adj.adjusted_at_block as i64), + &felt_to_blob(adj.tx_hash), + ], + ).await?; + } + + if !adjustments_to_record.is_empty() { + tracing::info!( + target: "torii_erc1155::storage", + count = adjustments_to_record.len(), + "Applied balance adjustments (genesis/airdrop detection)" + ); + } + + tx.commit().await?; + Ok(()) + } + + async fn pg_get_adjustment_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc1155.erc1155_balance_adjustments", + &[], + ) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_wallet_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(DISTINCT wallet) FROM erc1155.erc1155_balances", + &[], + ) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_has_token_metadata(&self, token: Felt) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc1155.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.get::(0) > 0) + } + + async fn pg_upsert_token_metadata( + &self, + token: Felt, + name: Option<&str>, + symbol: Option<&str>, + total_supply: Option, + ) -> Result<()> { + let client = self.pg_client().await?; + client.execute( + "INSERT INTO erc1155.token_metadata (token, name, symbol, total_supply) + VALUES ($1, $2, $3, $4) + ON CONFLICT (token) DO UPDATE SET + name = COALESCE(EXCLUDED.name, erc1155.token_metadata.name), + symbol = COALESCE(EXCLUDED.symbol, erc1155.token_metadata.symbol), + total_supply = COALESCE(EXCLUDED.total_supply, erc1155.token_metadata.total_supply)", + &[&felt_to_blob(token), &name, &symbol, &total_supply.map(u256_to_blob)], + ).await?; + Ok(()) + } + + async fn pg_get_token_metadata( + &self, + token: Felt, + ) -> Result, Option, Option)>> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT name, symbol, total_supply FROM erc1155.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.map(|r| { + let supply: Option> = r.get(2); + (r.get(0), r.get(1), supply.map(|b| blob_to_u256(&b))) + })) + } + + async fn pg_get_all_token_metadata( + &self, + ) -> Result, Option, Option)>> { + let client = self.pg_client().await?; + let rows = client + .query( + "SELECT token, name, symbol, total_supply + FROM erc1155.token_metadata + ORDER BY token ASC", + &[], + ) + .await?; + Ok(rows + .into_iter() + .map(|row| { + let supply: Option> = row.get(3); + ( + blob_to_felt(&row.get::>(0)), + row.get(1), + row.get(2), + supply.map(|b| blob_to_u256(&b)), + ) + }) + .collect()) + } + + async fn pg_get_token_metadata_paginated( + &self, + cursor: Option, + limit: u32, + ) -> Result<( + Vec<(Felt, Option, Option, Option)>, + Option, + )> { + let client = self.pg_client().await?; + let fetch_limit = limit.clamp(1, 1000) as i64 + 1; + let rows = if let Some(cursor_token) = cursor { + client + .query( + "SELECT token, name, symbol, total_supply + FROM erc1155.token_metadata + WHERE token > $1 + ORDER BY token ASC + LIMIT $2", + &[&felt_to_blob(cursor_token), &fetch_limit], + ) + .await? + } else { + client + .query( + "SELECT token, name, symbol, total_supply + FROM erc1155.token_metadata + ORDER BY token ASC + LIMIT $1", + &[&fetch_limit], + ) + .await? + }; + + let mut out: Vec<(Felt, Option, Option, Option)> = rows + .into_iter() + .map(|row| { + let supply: Option> = row.get(3); + ( + blob_to_felt(&row.get::>(0)), + row.get(1), + row.get(2), + supply.map(|b| blob_to_u256(&b)), + ) + }) + .collect(); + + let capped = limit.clamp(1, 1000) as usize; + let next_cursor = if out.len() > capped { + let next = out[capped].0; + out.truncate(capped); + Some(next) + } else { + None + }; + Ok((out, next_cursor)) + } + + async fn pg_has_token_uri(&self, token: Felt, token_id: U256) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc1155.token_uris WHERE token = $1 AND token_id = $2", + &[&felt_to_blob(token), &u256_to_blob(token_id)], + ) + .await?; + Ok(row.get::(0) > 0) + } } #[async_trait::async_trait] impl TokenUriStore for Erc1155Storage { async fn store_token_uri(&self, result: &TokenUriResult) -> Result<()> { + if self.backend == StorageBackend::Postgres { + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + + let token_blob = felt_to_blob(result.contract); + let token_id_blob = u256_to_blob(result.token_id); + + tx.execute( + "INSERT INTO erc1155.token_uris (token, token_id, uri, metadata_json, updated_at) + VALUES ($1, $2, $3, $4, EXTRACT(EPOCH FROM NOW())::BIGINT) + ON CONFLICT(token, token_id) DO UPDATE SET + uri = EXCLUDED.uri, + metadata_json = EXCLUDED.metadata_json, + updated_at = EXCLUDED.updated_at", + &[ + &token_blob, + &token_id_blob, + &result.uri.as_deref(), + &result.metadata_json.as_deref(), + ], + ) + .await?; + + tx.execute( + "DELETE FROM erc1155.token_attributes WHERE token = $1 AND token_id = $2", + &[&token_blob, &token_id_blob], + ) + .await?; + + if let Some(metadata_json) = &result.metadata_json { + if let Ok(value) = serde_json::from_str::(metadata_json) { + if let Some(attrs) = value.get("attributes").and_then(|a| a.as_array()) { + for attr in attrs { + let key = attr + .get("trait_type") + .or_else(|| attr.get("key")) + .and_then(|v| v.as_str()); + let value = attr.get("value").and_then(|v| { + v.as_str().map(ToOwned::to_owned).or_else(|| { + if v.is_null() { + None + } else { + Some(v.to_string()) + } + }) + }); + + let key = key.and_then(sanitize_metadata_text); + let value = value.and_then(|v| sanitize_metadata_text(&v)); + + if let (Some(key), Some(value)) = (key, value) { + tx.execute( + "INSERT INTO erc1155.token_attributes (token, token_id, key, value) + VALUES ($1, $2, $3, $4) + ON CONFLICT (token, token_id, key) DO UPDATE SET value = EXCLUDED.value", + &[&token_blob, &token_id_blob, &key, &value], + ).await?; + } + } + } + } + } + + tx.commit().await?; + return Ok(()); + } + let mut conn = self.conn.lock().unwrap(); let tx = conn.transaction()?; @@ -1248,6 +2599,9 @@ impl TokenUriStore for Erc1155Storage { }) }); + let key = key.and_then(sanitize_metadata_text); + let value = value.and_then(|v| sanitize_metadata_text(&v)); + if let (Some(key), Some(value)) = (key, value) { attr_stmt.execute(params![&token_blob, &token_id_blob, key, value])?; } @@ -1260,3 +2614,12 @@ impl TokenUriStore for Erc1155Storage { Ok(()) } } + +fn sanitize_metadata_text(input: &str) -> Option { + let sanitized = input.replace('\0', "").trim().to_owned(); + if sanitized.is_empty() { + None + } else { + Some(sanitized) + } +} diff --git a/crates/torii-erc20/Cargo.toml b/crates/torii-erc20/Cargo.toml index 81854ef..f8b1907 100644 --- a/crates/torii-erc20/Cargo.toml +++ b/crates/torii-erc20/Cargo.toml @@ -18,6 +18,7 @@ starknet = "0.17" # Storage rusqlite = { version = "0.32", features = ["bundled"] } +tokio-postgres = "0.7" # Serialization serde = { version = "1.0", features = ["derive"] } diff --git a/crates/torii-erc20/src/grpc_service.rs b/crates/torii-erc20/src/grpc_service.rs index 25cbc69..2d983ec 100644 --- a/crates/torii-erc20/src/grpc_service.rs +++ b/crates/torii-erc20/src/grpc_service.rs @@ -265,6 +265,7 @@ impl Erc20Trait for Erc20Service { cursor, limit, ) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let proto_transfers: Vec = @@ -342,6 +343,7 @@ impl Erc20Trait for Erc20Service { cursor, limit, ) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let proto_approvals: Vec = @@ -387,6 +389,7 @@ impl Erc20Trait for Erc20Service { let (balance, last_block) = self .storage .get_balance_with_block(token, wallet) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))? .unwrap_or((starknet::core::types::U256::from(0u64), 0)); @@ -424,6 +427,7 @@ impl Erc20Trait for Erc20Service { let (balances, next_cursor) = self .storage .get_balances_filtered(token, wallet, cursor, limit) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let rows = balances @@ -453,7 +457,7 @@ impl Erc20Trait for Erc20Service { let token = bytes_to_felt(&token_bytes) .ok_or_else(|| Status::invalid_argument("Invalid token address"))?; - let entries = match self.storage.get_token_metadata(token) { + let entries = match self.storage.get_token_metadata(token).await { Ok(Some((name, symbol, decimals))) => vec![TokenMetadataEntry { token: token.to_bytes_be().to_vec(), name, @@ -480,6 +484,7 @@ impl Erc20Trait for Erc20Service { let (all, next_cursor) = self .storage .get_token_metadata_paginated(cursor, limit) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let entries = all @@ -654,21 +659,25 @@ impl Erc20Trait for Erc20Service { let total_transfers = self .storage .get_transfer_count() + .await .map_err(|e| Status::internal(format!("Failed to get transfer count: {e}")))?; let total_approvals = self .storage .get_approval_count() + .await .map_err(|e| Status::internal(format!("Failed to get approval count: {e}")))?; let unique_tokens = self .storage .get_token_count() + .await .map_err(|e| Status::internal(format!("Failed to get token count: {e}")))?; let latest_block = self .storage .get_latest_block() + .await .map_err(|e| Status::internal(format!("Failed to get latest block: {e}")))? .unwrap_or(0); diff --git a/crates/torii-erc20/src/sink.rs b/crates/torii-erc20/src/sink.rs index d698b44..241c97a 100644 --- a/crates/torii-erc20/src/sink.rs +++ b/crates/torii-erc20/src/sink.rs @@ -24,6 +24,7 @@ use prost_types::Any; use starknet::core::types::{Felt, U256}; use starknet::providers::jsonrpc::{HttpTransport, JsonRpcClient}; use std::collections::{HashMap, HashSet}; +use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; use torii::etl::sink::{EventBus, TopicInfo}; use torii::etl::{Envelope, ExtractionBatch, Sink, TypeId}; @@ -52,6 +53,9 @@ pub struct Erc20Sink { balance_fetcher: Option>, /// Metadata fetcher for token name/symbol/decimals metadata_fetcher: Option>, + /// In-memory counters to avoid full-table COUNT(*) in the ingest hot path. + total_transfers: AtomicU64, + total_approvals: AtomicU64, } impl Erc20Sink { @@ -62,6 +66,9 @@ impl Erc20Sink { grpc_service: None, balance_fetcher: None, metadata_fetcher: None, + // Avoid startup full-table COUNT(*) scans on large datasets. + total_transfers: AtomicU64::new(0), + total_approvals: AtomicU64::new(0), } } @@ -242,6 +249,8 @@ impl Sink for Erc20Sink { // Collect all transfers and approvals for batch insertion let mut transfers: Vec = Vec::new(); let mut approvals: Vec = Vec::new(); + let mut inserted_transfers: u64 = 0; + let mut inserted_approvals: u64 = 0; // Get block timestamps from batch for enrichment let block_timestamps: HashMap = batch @@ -295,75 +304,80 @@ impl Sink for Erc20Sink { new_tokens.insert(approval.token); } - for token in new_tokens { - match self.storage.has_token_metadata(token) { - Ok(exists) => { - if exists { - continue; - } - - let meta = fetcher.fetch_erc20_metadata(token).await; - tracing::info!( - target: "torii_erc20::sink", - token = %format!("{:#x}", token), - name = ?meta.name, - symbol = ?meta.symbol, - decimals = ?meta.decimals, - "Fetched token metadata" - ); - if let Err(e) = self.storage.upsert_token_metadata( - token, - meta.name.as_deref(), - meta.symbol.as_deref(), - meta.decimals, - ) { - tracing::warn!( - target: "torii_erc20::sink", - token = %format!("{:#x}", token), - error = %e, - "Failed to store token metadata" - ); - } else if let Some(event_bus) = &self.event_bus { - let meta_entry = proto::TokenMetadataEntry { - token: token.to_bytes_be().to_vec(), - name: meta.name, - symbol: meta.symbol, - decimals: meta.decimals.map(|d| d as u32), - }; - - let mut buf = Vec::new(); - meta_entry.encode(&mut buf)?; - let any = Any { - type_url: - "type.googleapis.com/torii.sinks.erc20.TokenMetadataEntry" - .to_string(), - value: buf, - }; - - event_bus.publish_protobuf( - "erc20.metadata", - "erc20.metadata", - &any, - &meta_entry, - UpdateType::Created, - Self::matches_metadata_filters, - ); - } - } + let ordered_tokens: Vec = new_tokens.iter().copied().collect(); + let existing_metadata = + match self.storage.has_token_metadata_batch(&ordered_tokens).await { + Ok(existing) => existing, Err(e) => { tracing::warn!( target: "torii_erc20::sink", error = %e, - "Failed to check token metadata" + "Failed to batch-check token metadata" ); + HashSet::new() } + }; + + for token in ordered_tokens + .into_iter() + .filter(|token| !existing_metadata.contains(token)) + { + let meta = fetcher.fetch_erc20_metadata(token).await; + tracing::info!( + target: "torii_erc20::sink", + token = %format!("{:#x}", token), + name = ?meta.name, + symbol = ?meta.symbol, + decimals = ?meta.decimals, + "Fetched token metadata" + ); + if let Err(e) = self + .storage + .upsert_token_metadata( + token, + meta.name.as_deref(), + meta.symbol.as_deref(), + meta.decimals, + ) + .await + { + tracing::warn!( + target: "torii_erc20::sink", + token = %format!("{:#x}", token), + error = %e, + "Failed to store token metadata" + ); + } else if let Some(event_bus) = &self.event_bus { + let meta_entry = proto::TokenMetadataEntry { + token: token.to_bytes_be().to_vec(), + name: meta.name, + symbol: meta.symbol, + decimals: meta.decimals.map(|d| d as u32), + }; + + let mut buf = Vec::new(); + meta_entry.encode(&mut buf)?; + let any = Any { + type_url: "type.googleapis.com/torii.sinks.erc20.TokenMetadataEntry" + .to_string(), + value: buf, + }; + + event_bus.publish_protobuf( + "erc20.metadata", + "erc20.metadata", + &any, + &meta_entry, + UpdateType::Created, + Self::matches_metadata_filters, + ); } } } // Batch insert transfers if !transfers.is_empty() { - let transfer_count = match self.storage.insert_transfers_batch(&transfers) { + let transfer_count = match self.storage.insert_transfers_batch(&transfers).await { Ok(count) => count, Err(e) => { tracing::error!( @@ -377,6 +391,10 @@ impl Sink for Erc20Sink { }; if transfer_count > 0 { + inserted_transfers = transfer_count as u64; + self.total_transfers + .fetch_add(inserted_transfers, Ordering::Relaxed); + tracing::info!( target: "torii_erc20::sink", count = transfer_count, @@ -386,7 +404,11 @@ impl Sink for Erc20Sink { // Update balances if balance tracking is enabled if let Some(ref fetcher) = self.balance_fetcher { // Step 1: Check which balances need adjustment (would go negative) - let adjustment_requests = match self.storage.check_balances_batch(&transfers) { + let adjustment_requests = match self + .storage + .check_balances_batch(&transfers) + .await + { Ok(requests) => requests, Err(e) => { tracing::warn!( @@ -431,6 +453,7 @@ impl Sink for Erc20Sink { if let Err(e) = self .storage .apply_transfers_with_adjustments(&transfers, &adjustments) + .await { tracing::error!( target: "torii_erc20::sink", @@ -487,7 +510,7 @@ impl Sink for Erc20Sink { // Batch insert approvals if !approvals.is_empty() { - let approval_count = match self.storage.insert_approvals_batch(&approvals) { + let approval_count = match self.storage.insert_approvals_batch(&approvals).await { Ok(count) => count, Err(e) => { tracing::error!( @@ -501,6 +524,10 @@ impl Sink for Erc20Sink { }; if approval_count > 0 { + inserted_approvals = approval_count as u64; + self.total_approvals + .fetch_add(inserted_approvals, Ordering::Relaxed); + tracing::info!( target: "torii_erc20::sink", count = approval_count, @@ -551,22 +578,17 @@ impl Sink for Erc20Sink { } } - // Log combined statistics - if !transfers.is_empty() || !approvals.is_empty() { - if let Ok(total_transfers) = self.storage.get_transfer_count() { - if let Ok(total_approvals) = self.storage.get_approval_count() { - if let Ok(token_count) = self.storage.get_token_count() { - tracing::info!( - target: "torii_erc20::sink", - transfers = total_transfers, - approvals = total_approvals, - tokens = token_count, - blocks = batch.blocks.len(), - "Total statistics" - ); - } - } - } + // Log combined statistics without full-table scans. + if inserted_transfers > 0 || inserted_approvals > 0 { + tracing::info!( + target: "torii_erc20::sink", + batch_transfers = inserted_transfers, + batch_approvals = inserted_approvals, + total_transfers = self.total_transfers.load(Ordering::Relaxed), + total_approvals = self.total_approvals.load(Ordering::Relaxed), + blocks = batch.blocks.len(), + "Total statistics" + ); } Ok(()) diff --git a/crates/torii-erc20/src/storage.rs b/crates/torii-erc20/src/storage.rs index f6d3722..6753f8f 100644 --- a/crates/torii-erc20/src/storage.rs +++ b/crates/torii-erc20/src/storage.rs @@ -12,8 +12,9 @@ use anyhow::Result; use rusqlite::{params, Connection}; use starknet::core::types::{Felt, U256}; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::sync::{Arc, Mutex}; +use tokio_postgres::{types::ToSql as PgToSql, Client, NoTls}; use torii_common::{blob_to_felt, blob_to_u256, felt_to_blob, u256_to_blob}; use crate::balance_fetcher::BalanceFetchRequest; @@ -32,7 +33,15 @@ pub enum TransferDirection { /// Storage for ERC20 transfers and approvals pub struct Erc20Storage { + backend: StorageBackend, conn: Arc>, + pg_conn: Option>>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum StorageBackend { + Sqlite, + Postgres, } /// Transfer data for batch insertion @@ -101,7 +110,120 @@ pub struct BalanceAdjustment { impl Erc20Storage { /// Create or open the database - pub fn new(db_path: &str) -> Result { + pub async fn new(db_path: &str) -> Result { + if db_path.starts_with("postgres://") || db_path.starts_with("postgresql://") { + let (client, connection) = tokio_postgres::connect(db_path, NoTls).await?; + tokio::spawn(async move { + if let Err(e) = connection.await { + tracing::error!(target: "torii_erc20::storage", error = %e, "PostgreSQL connection task failed"); + } + }); + + client.batch_execute( + r" + CREATE SCHEMA IF NOT EXISTS erc20; + + CREATE TABLE IF NOT EXISTS erc20.transfers ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + from_addr BYTEA NOT NULL, + to_addr BYTEA NOT NULL, + amount BYTEA NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + UNIQUE(token, tx_hash, from_addr, to_addr) + ); + CREATE INDEX IF NOT EXISTS idx_transfers_token ON erc20.transfers(token); + CREATE INDEX IF NOT EXISTS idx_transfers_from ON erc20.transfers(from_addr); + CREATE INDEX IF NOT EXISTS idx_transfers_to ON erc20.transfers(to_addr); + CREATE INDEX IF NOT EXISTS idx_transfers_block ON erc20.transfers(block_number); + CREATE INDEX IF NOT EXISTS idx_transfers_token_block ON erc20.transfers(token, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_transfers_from_block ON erc20.transfers(from_addr, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_transfers_to_block ON erc20.transfers(to_addr, block_number DESC); + + CREATE TABLE IF NOT EXISTS erc20.approvals ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + owner BYTEA NOT NULL, + spender BYTEA NOT NULL, + amount BYTEA NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + UNIQUE(token, tx_hash, owner, spender) + ); + CREATE INDEX IF NOT EXISTS idx_approvals_owner ON erc20.approvals(owner, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_approvals_spender ON erc20.approvals(spender, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_approvals_token ON erc20.approvals(token, block_number DESC); + + CREATE TABLE IF NOT EXISTS erc20.wallet_activity ( + id BIGSERIAL PRIMARY KEY, + wallet_address BYTEA NOT NULL, + token BYTEA NOT NULL, + transfer_id BIGINT NOT NULL REFERENCES erc20.transfers(id), + direction TEXT NOT NULL CHECK(direction IN ('sent', 'received', 'both')), + block_number BIGINT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_wallet_activity_wallet_block ON erc20.wallet_activity(wallet_address, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_wallet_activity_wallet_token ON erc20.wallet_activity(wallet_address, token, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_wallet_activity_transfer ON erc20.wallet_activity(transfer_id); + + CREATE TABLE IF NOT EXISTS erc20.approval_activity ( + id BIGSERIAL PRIMARY KEY, + account_address BYTEA NOT NULL, + token BYTEA NOT NULL, + approval_id BIGINT NOT NULL REFERENCES erc20.approvals(id), + role TEXT NOT NULL CHECK(role IN ('owner', 'spender', 'both')), + block_number BIGINT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_approval_activity_account_block ON erc20.approval_activity(account_address, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_approval_activity_account_token ON erc20.approval_activity(account_address, token, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_approval_activity_approval ON erc20.approval_activity(approval_id); + + CREATE TABLE IF NOT EXISTS erc20.balances ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + wallet BYTEA NOT NULL, + balance BYTEA NOT NULL, + last_block BIGINT NOT NULL, + last_tx_hash BYTEA NOT NULL, + updated_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + UNIQUE(token, wallet) + ); + CREATE INDEX IF NOT EXISTS idx_balances_token ON erc20.balances(token); + CREATE INDEX IF NOT EXISTS idx_balances_wallet ON erc20.balances(wallet); + + CREATE TABLE IF NOT EXISTS erc20.balance_adjustments ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + wallet BYTEA NOT NULL, + computed_balance BYTEA NOT NULL, + actual_balance BYTEA NOT NULL, + adjusted_at_block BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + created_at BIGINT DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT) + ); + CREATE INDEX IF NOT EXISTS idx_adjustments_wallet ON erc20.balance_adjustments(wallet); + CREATE INDEX IF NOT EXISTS idx_adjustments_token ON erc20.balance_adjustments(token); + + CREATE TABLE IF NOT EXISTS erc20.token_metadata ( + token BYTEA PRIMARY KEY, + name TEXT, + symbol TEXT, + decimals BIGINT + ); + ", + ).await?; + + tracing::info!(target: "torii_erc20::storage", "PostgreSQL storage initialized"); + return Ok(Self { + backend: StorageBackend::Postgres, + conn: Arc::new(Mutex::new(Connection::open_in_memory()?)), + pg_conn: Some(Arc::new(tokio::sync::Mutex::new(client))), + }); + } + let conn = Connection::open(db_path)?; // Enable WAL mode + Performance PRAGMAs (critical for production scale) @@ -117,6 +239,7 @@ impl Erc20Storage { PRAGMA cache_size=-64000; PRAGMA temp_store=MEMORY; PRAGMA mmap_size=268435456; + PRAGMA wal_autocheckpoint=10000; PRAGMA page_size=4096; PRAGMA busy_timeout=5000;", )?; @@ -351,7 +474,9 @@ impl Erc20Storage { tracing::info!(target: "torii_erc20::storage", db_path = %db_path, "Database initialized"); Ok(Self { + backend: StorageBackend::Sqlite, conn: Arc::new(Mutex::new(conn)), + pg_conn: None, }) } @@ -361,7 +486,10 @@ impl Erc20Storage { /// - Single lock acquisition /// - Single transaction (all-or-nothing commit) /// - Prepared statement reuse - pub fn insert_transfers_batch(&self, transfers: &[TransferData]) -> Result { + pub async fn insert_transfers_batch(&self, transfers: &[TransferData]) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_transfers_batch(transfers).await; + } if transfers.is_empty() { return Ok(0); } @@ -454,7 +582,10 @@ impl Erc20Storage { } /// Insert multiple approvals in a single transaction - pub fn insert_approvals_batch(&self, approvals: &[ApprovalData]) -> Result { + pub async fn insert_approvals_batch(&self, approvals: &[ApprovalData]) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_approvals_batch(approvals).await; + } if approvals.is_empty() { return Ok(0); } @@ -556,7 +687,7 @@ impl Erc20Storage { /// - `block_from`/`block_to`: Block range filter /// - `cursor`: Cursor from previous page /// - `limit`: Maximum results - pub fn get_transfers_filtered( + pub async fn get_transfers_filtered( &self, wallet: Option, from: Option, @@ -568,6 +699,13 @@ impl Erc20Storage { cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_transfers_filtered( + wallet, from, to, tokens, direction, block_from, block_to, cursor, limit, + ) + .await; + } let conn = self.conn.lock().unwrap(); // Build dynamic query based on filters @@ -703,7 +841,7 @@ impl Erc20Storage { /// - `block_from`/`block_to`: Block range filter /// - `cursor`: Cursor from previous page /// - `limit`: Maximum results - pub fn get_approvals_filtered( + pub async fn get_approvals_filtered( &self, account: Option, owner: Option, @@ -714,6 +852,13 @@ impl Erc20Storage { cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_approvals_filtered( + account, owner, spender, tokens, block_from, block_to, cursor, limit, + ) + .await; + } let conn = self.conn.lock().unwrap(); // Build dynamic query based on filters @@ -829,21 +974,30 @@ impl Erc20Storage { } /// Get transfer count - pub fn get_transfer_count(&self) -> Result { + pub async fn get_transfer_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_transfer_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM transfers", [], |row| row.get(0))?; Ok(count as u64) } /// Get approval count - pub fn get_approval_count(&self) -> Result { + pub async fn get_approval_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_approval_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM approvals", [], |row| row.get(0))?; Ok(count as u64) } /// Get indexed token count - pub fn get_token_count(&self) -> Result { + pub async fn get_token_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(DISTINCT token) FROM transfers", [], |row| { @@ -853,7 +1007,10 @@ impl Erc20Storage { } /// Get latest block number indexed - pub fn get_latest_block(&self) -> Result> { + pub async fn get_latest_block(&self) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_latest_block().await; + } let conn = self.conn.lock().unwrap(); let block: Option = conn .query_row("SELECT MAX(block_number) FROM transfers", [], |row| { @@ -866,7 +1023,10 @@ impl Erc20Storage { // ===== Balance Tracking Methods ===== /// Get current balance for a wallet/token pair - pub fn get_balance(&self, token: Felt, wallet: Felt) -> Result> { + pub async fn get_balance(&self, token: Felt, wallet: Felt) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_balance(token, wallet).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let wallet_blob = felt_to_blob(wallet); @@ -883,7 +1043,14 @@ impl Erc20Storage { } /// Get balance with last block info for a wallet/token pair - pub fn get_balance_with_block(&self, token: Felt, wallet: Felt) -> Result> { + pub async fn get_balance_with_block( + &self, + token: Felt, + wallet: Felt, + ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_balance_with_block(token, wallet).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let wallet_blob = felt_to_blob(wallet); @@ -903,13 +1070,18 @@ impl Erc20Storage { /// /// Pagination is cursor-based on the `balances.id` primary key in ascending order. /// Returns `(rows, next_cursor)`. - pub fn get_balances_filtered( + pub async fn get_balances_filtered( &self, token: Option, wallet: Option, cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_balances_filtered(token, wallet, cursor, limit) + .await; + } let conn = self.conn.lock().unwrap(); let mut query = String::from( @@ -980,10 +1152,13 @@ impl Erc20Storage { } /// Get balances for multiple wallet/token pairs in a single query - pub fn get_balances_batch( + pub async fn get_balances_batch( &self, pairs: &[(Felt, Felt)], ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_balances_batch(pairs).await; + } if pairs.is_empty() { return Ok(HashMap::new()); } @@ -1017,10 +1192,13 @@ impl Erc20Storage { /// /// The returned requests have block_number set to transfer.block_number - 1 /// (the block RIGHT BEFORE the transfer occurred). - pub fn check_balances_batch( + pub async fn check_balances_batch( &self, transfers: &[TransferData], ) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_check_balances_batch(transfers).await; + } if transfers.is_empty() { return Ok(Vec::new()); } @@ -1036,7 +1214,7 @@ impl Erc20Storage { .collect(); // Get current balances for all senders - let current_balances = self.get_balances_batch(&sender_pairs)?; + let current_balances = self.get_balances_batch(&sender_pairs).await?; // Track running balance changes within this batch // (multiple transfers from same wallet in same batch) @@ -1114,11 +1292,16 @@ impl Erc20Storage { /// # Arguments /// * `transfers` - The transfers to apply /// * `adjustments` - Map of (token, wallet) -> actual_balance fetched from RPC - pub fn apply_transfers_with_adjustments( + pub async fn apply_transfers_with_adjustments( &self, transfers: &[TransferData], adjustments: &HashMap<(Felt, Felt), U256>, ) -> Result<()> { + if self.backend == StorageBackend::Postgres { + return self + .pg_apply_transfers_with_adjustments(transfers, adjustments) + .await; + } if transfers.is_empty() { return Ok(()); } @@ -1300,7 +1483,7 @@ impl Erc20Storage { } /// Get adjustment count (for statistics) - pub fn get_adjustment_count(&self) -> Result { + pub async fn get_adjustment_count(&self) -> Result { let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM balance_adjustments", [], |row| { row.get(0) @@ -1309,7 +1492,7 @@ impl Erc20Storage { } /// Get unique wallet count with balances - pub fn get_wallet_count(&self) -> Result { + pub async fn get_wallet_count(&self) -> Result { let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(DISTINCT wallet) FROM balances", [], |row| { @@ -1321,7 +1504,10 @@ impl Erc20Storage { // ===== Token Metadata Methods ===== /// Check if metadata exists for a token - pub fn has_token_metadata(&self, token: Felt) -> Result { + pub async fn has_token_metadata(&self, token: Felt) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let count: i64 = conn.query_row( @@ -1332,14 +1518,51 @@ impl Erc20Storage { Ok(count > 0) } + /// Returns the subset of `tokens` that already have metadata. + pub async fn has_token_metadata_batch(&self, tokens: &[Felt]) -> Result> { + if tokens.is_empty() { + return Ok(HashSet::new()); + } + + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_metadata_batch(tokens).await; + } + + let conn = self.conn.lock().unwrap(); + let mut existing = HashSet::with_capacity(tokens.len()); + let mut stmt = conn.prepare("SELECT 1 FROM token_metadata WHERE token = ? LIMIT 1")?; + for token in tokens { + let mut rows = stmt.query(params![felt_to_blob(*token)])?; + if rows.next()?.is_some() { + existing.insert(*token); + } + } + + Ok(existing) + } + /// Insert or update token metadata - pub fn upsert_token_metadata( + pub async fn upsert_token_metadata( &self, token: Felt, name: Option<&str>, symbol: Option<&str>, decimals: Option, ) -> Result<()> { + // Some on-chain metadata payloads include embedded NUL bytes. + // PostgreSQL TEXT rejects '\0', so normalize before persistence. + let clean_name = name.map(|s| s.replace('\0', "")); + let clean_symbol = symbol.map(|s| s.replace('\0', "")); + if self.backend == StorageBackend::Postgres { + return self + .pg_upsert_token_metadata( + token, + clean_name.as_deref(), + clean_symbol.as_deref(), + decimals, + ) + .await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); conn.execute( @@ -1349,16 +1572,24 @@ impl Erc20Storage { name = COALESCE(excluded.name, token_metadata.name), symbol = COALESCE(excluded.symbol, token_metadata.symbol), decimals = COALESCE(excluded.decimals, token_metadata.decimals)", - params![&token_blob, name, symbol, decimals.map(|d| d as i64)], + params![ + &token_blob, + clean_name.as_deref(), + clean_symbol.as_deref(), + decimals.map(|d| d as i64) + ], )?; Ok(()) } /// Get token metadata - pub fn get_token_metadata( + pub async fn get_token_metadata( &self, token: Felt, ) -> Result, Option, Option)>> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let result = conn @@ -1377,7 +1608,7 @@ impl Erc20Storage { } /// Get all token metadata - pub fn get_all_token_metadata( + pub async fn get_all_token_metadata( &self, ) -> Result, Option, Option)>> { let conn = self.conn.lock().unwrap(); @@ -1400,7 +1631,7 @@ impl Erc20Storage { /// Get token metadata with cursor-based pagination. /// /// Returns at most `limit` rows and an optional next cursor token. - pub fn get_token_metadata_paginated( + pub async fn get_token_metadata_paginated( &self, cursor: Option, limit: u32, @@ -1408,6 +1639,9 @@ impl Erc20Storage { Vec<(Felt, Option, Option, Option)>, Option, )> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata_paginated(cursor, limit).await; + } let conn = self.conn.lock().unwrap(); let fetch_limit = limit.clamp(1, 1000) as usize + 1; @@ -1466,4 +1700,957 @@ impl Erc20Storage { Ok((out, next_cursor)) } + + async fn pg_client(&self) -> Result> { + let conn = self + .pg_conn + .as_ref() + .ok_or_else(|| anyhow::anyhow!("PostgreSQL connection not initialized"))?; + Ok(conn.lock().await) + } + + fn pg_next_param( + params: &mut Vec>, + value: impl PgToSql + Sync + Send + 'static, + ) -> String { + params.push(Box::new(value)); + format!("${}", params.len()) + } + + async fn pg_insert_transfers_batch(&self, transfers: &[TransferData]) -> Result { + if transfers.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + let insert_transfer_stmt = tx + .prepare( + "INSERT INTO erc20.transfers (token, from_addr, to_addr, amount, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (token, tx_hash, from_addr, to_addr) DO NOTHING + RETURNING id", + ) + .await?; + let wallet_both_stmt = tx + .prepare( + "INSERT INTO erc20.wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'both', $4)", + ) + .await?; + let wallet_sent_stmt = tx + .prepare( + "INSERT INTO erc20.wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'sent', $4)", + ) + .await?; + let wallet_received_stmt = tx + .prepare( + "INSERT INTO erc20.wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'received', $4)", + ) + .await?; + + for transfer in transfers { + let token_blob = felt_to_blob(transfer.token); + let from_blob = felt_to_blob(transfer.from); + let to_blob = felt_to_blob(transfer.to); + let amount_blob = u256_to_blob(transfer.amount); + let tx_hash_blob = felt_to_blob(transfer.tx_hash); + let ts = transfer + .timestamp + .unwrap_or_else(|| chrono::Utc::now().timestamp()); + + let row = tx + .query_opt( + &insert_transfer_stmt, + &[ + &token_blob, + &from_blob, + &to_blob, + &amount_blob, + &(transfer.block_number as i64), + &tx_hash_blob, + &ts, + ], + ) + .await?; + + if let Some(row) = row { + inserted += 1; + let transfer_id: i64 = row.get(0); + if transfer.from != Felt::ZERO + && transfer.to != Felt::ZERO + && transfer.from == transfer.to + { + tx.execute( + &wallet_both_stmt, + &[ + &from_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ) + .await?; + } else { + if transfer.from != Felt::ZERO { + tx.execute( + &wallet_sent_stmt, + &[ + &from_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ) + .await?; + } + if transfer.to != Felt::ZERO { + tx.execute( + &wallet_received_stmt, + &[ + &to_blob, + &token_blob, + &transfer_id, + &(transfer.block_number as i64), + ], + ) + .await?; + } + } + } + } + + tx.commit().await?; + Ok(inserted) + } + + async fn pg_insert_approvals_batch(&self, approvals: &[ApprovalData]) -> Result { + if approvals.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + let insert_approval_stmt = tx + .prepare( + "INSERT INTO erc20.approvals (token, owner, spender, amount, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (token, tx_hash, owner, spender) DO NOTHING + RETURNING id", + ) + .await?; + let approval_both_stmt = tx + .prepare( + "INSERT INTO erc20.approval_activity (account_address, token, approval_id, role, block_number) + VALUES ($1, $2, $3, 'both', $4)", + ) + .await?; + let approval_owner_stmt = tx + .prepare( + "INSERT INTO erc20.approval_activity (account_address, token, approval_id, role, block_number) + VALUES ($1, $2, $3, 'owner', $4)", + ) + .await?; + let approval_spender_stmt = tx + .prepare( + "INSERT INTO erc20.approval_activity (account_address, token, approval_id, role, block_number) + VALUES ($1, $2, $3, 'spender', $4)", + ) + .await?; + + for approval in approvals { + let token_blob = felt_to_blob(approval.token); + let owner_blob = felt_to_blob(approval.owner); + let spender_blob = felt_to_blob(approval.spender); + let amount_blob = u256_to_blob(approval.amount); + let tx_hash_blob = felt_to_blob(approval.tx_hash); + let ts = approval + .timestamp + .unwrap_or_else(|| chrono::Utc::now().timestamp()); + + let row = tx + .query_opt( + &insert_approval_stmt, + &[ + &token_blob, + &owner_blob, + &spender_blob, + &amount_blob, + &(approval.block_number as i64), + &tx_hash_blob, + &ts, + ], + ) + .await?; + + if let Some(row) = row { + inserted += 1; + let approval_id: i64 = row.get(0); + if approval.owner != Felt::ZERO + && approval.spender != Felt::ZERO + && approval.owner == approval.spender + { + tx.execute( + &approval_both_stmt, + &[ + &owner_blob, + &token_blob, + &approval_id, + &(approval.block_number as i64), + ], + ) + .await?; + } else { + if approval.owner != Felt::ZERO { + tx.execute( + &approval_owner_stmt, + &[ + &owner_blob, + &token_blob, + &approval_id, + &(approval.block_number as i64), + ], + ) + .await?; + } + if approval.spender != Felt::ZERO { + tx.execute( + &approval_spender_stmt, + &[ + &spender_blob, + &token_blob, + &approval_id, + &(approval.block_number as i64), + ], + ) + .await?; + } + } + } + } + + tx.commit().await?; + Ok(inserted) + } + + async fn pg_get_transfers_filtered( + &self, + wallet: Option, + from: Option, + to: Option, + tokens: &[Felt], + direction: TransferDirection, + block_from: Option, + block_to: Option, + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::new(); + let mut params: Vec> = Vec::new(); + + if let Some(wallet_addr) = wallet { + let p = Self::pg_next_param(&mut params, felt_to_blob(wallet_addr)); + query.push_str( + "SELECT DISTINCT t.id, t.token, t.from_addr, t.to_addr, t.amount, t.block_number, t.tx_hash, t.timestamp + FROM erc20.wallet_activity wa + JOIN erc20.transfers t ON wa.transfer_id = t.id + WHERE wa.wallet_address = ", + ); + query.push_str(&p); + + match direction { + TransferDirection::All => {} + TransferDirection::Sent => query.push_str(" AND wa.direction IN ('sent', 'both')"), + TransferDirection::Received => { + query.push_str(" AND wa.direction IN ('received', 'both')") + } + } + + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND wa.token IN ({list})")); + } + } else { + query.push_str( + "SELECT t.id, t.token, t.from_addr, t.to_addr, t.amount, t.block_number, t.tx_hash, t.timestamp + FROM erc20.transfers t + WHERE 1=1", + ); + + if let Some(from_addr) = from { + query.push_str(" AND t.from_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(from_addr))); + } + + if let Some(to_addr) = to { + query.push_str(" AND t.to_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(to_addr))); + } + + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND t.token IN ({list})")); + } + } + + if let Some(block_min) = block_from { + query.push_str(" AND t.block_number >= "); + query.push_str(&Self::pg_next_param(&mut params, block_min as i64)); + } + + if let Some(block_max) = block_to { + query.push_str(" AND t.block_number <= "); + query.push_str(&Self::pg_next_param(&mut params, block_max as i64)); + } + + if let Some(c) = cursor { + let p1 = Self::pg_next_param(&mut params, c.block_number as i64); + let p2 = Self::pg_next_param(&mut params, c.block_number as i64); + let p3 = Self::pg_next_param(&mut params, c.id); + query.push_str(&format!( + " AND (t.block_number < {p1} OR (t.block_number = {p2} AND t.id < {p3}))" + )); + } + + let pl = Self::pg_next_param(&mut params, limit as i64); + query.push_str(&format!( + " ORDER BY t.block_number DESC, t.id DESC LIMIT {pl}" + )); + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + + let transfers: Vec = rows + .into_iter() + .map(|row| TransferData { + id: Some(row.get::(0)), + token: blob_to_felt(&row.get::>(1)), + from: blob_to_felt(&row.get::>(2)), + to: blob_to_felt(&row.get::>(3)), + amount: blob_to_u256(&row.get::>(4)), + block_number: row.get::(5) as u64, + tx_hash: blob_to_felt(&row.get::>(6)), + timestamp: Some(row.get::(7)), + }) + .collect(); + + let next_cursor = if transfers.len() == limit as usize { + transfers.last().map(|t| TransferCursor { + block_number: t.block_number, + id: t.id.unwrap_or_default(), + }) + } else { + None + }; + + Ok((transfers, next_cursor)) + } + + async fn pg_get_approvals_filtered( + &self, + account: Option, + owner: Option, + spender: Option, + tokens: &[Felt], + block_from: Option, + block_to: Option, + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::new(); + let mut params: Vec> = Vec::new(); + + if let Some(account_addr) = account { + query.push_str( + "SELECT DISTINCT a.id, a.token, a.owner, a.spender, a.amount, a.block_number, a.tx_hash, a.timestamp + FROM erc20.approval_activity aa + JOIN erc20.approvals a ON aa.approval_id = a.id + WHERE aa.account_address = ", + ); + query.push_str(&Self::pg_next_param( + &mut params, + felt_to_blob(account_addr), + )); + + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND aa.token IN ({list})")); + } + } else { + query.push_str( + "SELECT a.id, a.token, a.owner, a.spender, a.amount, a.block_number, a.tx_hash, a.timestamp + FROM erc20.approvals a + WHERE 1=1", + ); + if let Some(owner_addr) = owner { + query.push_str(" AND a.owner = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(owner_addr))); + } + if let Some(spender_addr) = spender { + query.push_str(" AND a.spender = "); + query.push_str(&Self::pg_next_param( + &mut params, + felt_to_blob(spender_addr), + )); + } + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND a.token IN ({list})")); + } + } + + if let Some(block_min) = block_from { + query.push_str(" AND a.block_number >= "); + query.push_str(&Self::pg_next_param(&mut params, block_min as i64)); + } + if let Some(block_max) = block_to { + query.push_str(" AND a.block_number <= "); + query.push_str(&Self::pg_next_param(&mut params, block_max as i64)); + } + if let Some(c) = cursor { + let p1 = Self::pg_next_param(&mut params, c.block_number as i64); + let p2 = Self::pg_next_param(&mut params, c.block_number as i64); + let p3 = Self::pg_next_param(&mut params, c.id); + query.push_str(&format!( + " AND (a.block_number < {p1} OR (a.block_number = {p2} AND a.id < {p3}))" + )); + } + let pl = Self::pg_next_param(&mut params, limit as i64); + query.push_str(&format!( + " ORDER BY a.block_number DESC, a.id DESC LIMIT {pl}" + )); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let approvals: Vec = rows + .into_iter() + .map(|row| ApprovalData { + id: Some(row.get::(0)), + token: blob_to_felt(&row.get::>(1)), + owner: blob_to_felt(&row.get::>(2)), + spender: blob_to_felt(&row.get::>(3)), + amount: blob_to_u256(&row.get::>(4)), + block_number: row.get::(5) as u64, + tx_hash: blob_to_felt(&row.get::>(6)), + timestamp: Some(row.get::(7)), + }) + .collect(); + + let next_cursor = if approvals.len() == limit as usize { + approvals.last().map(|a| ApprovalCursor { + block_number: a.block_number, + id: a.id.unwrap_or_default(), + }) + } else { + None + }; + Ok((approvals, next_cursor)) + } + + async fn pg_get_transfer_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(*) FROM erc20.transfers", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_approval_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(*) FROM erc20.approvals", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_token_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(DISTINCT token) FROM erc20.transfers", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_latest_block(&self) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT MAX(block_number) FROM erc20.transfers", &[]) + .await?; + let v: Option = row.get(0); + Ok(v.map(|x| x as u64)) + } + + async fn pg_get_balance(&self, token: Felt, wallet: Felt) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT balance FROM erc20.balances WHERE token = $1 AND wallet = $2", + &[&felt_to_blob(token), &felt_to_blob(wallet)], + ) + .await?; + Ok(row.map(|r| blob_to_u256(&r.get::>(0)))) + } + + async fn pg_get_balance_with_block( + &self, + token: Felt, + wallet: Felt, + ) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT balance, last_block FROM erc20.balances WHERE token = $1 AND wallet = $2", + &[&felt_to_blob(token), &felt_to_blob(wallet)], + ) + .await?; + Ok(row.map(|r| { + ( + blob_to_u256(&r.get::>(0)), + r.get::(1) as u64, + ) + })) + } + + async fn pg_get_balances_filtered( + &self, + token: Option, + wallet: Option, + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::from( + "SELECT id, token, wallet, balance, last_block, last_tx_hash FROM erc20.balances WHERE 1=1", + ); + let mut params: Vec> = Vec::new(); + if let Some(token_addr) = token { + query.push_str(" AND token = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(token_addr))); + } + if let Some(wallet_addr) = wallet { + query.push_str(" AND wallet = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(wallet_addr))); + } + if let Some(c) = cursor { + query.push_str(" AND id > "); + query.push_str(&Self::pg_next_param(&mut params, c)); + } + query.push_str(" ORDER BY id ASC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, limit as i64)); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let mut out = Vec::new(); + let mut last_id = None; + for row in rows { + let id: i64 = row.get(0); + last_id = Some(id); + out.push(BalanceData { + token: blob_to_felt(&row.get::>(1)), + wallet: blob_to_felt(&row.get::>(2)), + balance: blob_to_u256(&row.get::>(3)), + last_block: row.get::(4) as u64, + last_tx_hash: blob_to_felt(&row.get::>(5)), + }); + } + let next_cursor = if out.len() == limit as usize { + last_id + } else { + None + }; + Ok((out, next_cursor)) + } + + async fn pg_get_balances_batch( + &self, + pairs: &[(Felt, Felt)], + ) -> Result> { + let client = self.pg_client().await?; + let mut result = HashMap::new(); + for (token, wallet) in pairs { + if let Some(row) = client + .query_opt( + "SELECT balance FROM erc20.balances WHERE token = $1 AND wallet = $2", + &[&felt_to_blob(*token), &felt_to_blob(*wallet)], + ) + .await? + { + result.insert( + (*token, *wallet), + blob_to_u256(&row.get::>(0)), + ); + } + } + Ok(result) + } + + async fn pg_check_balances_batch( + &self, + transfers: &[TransferData], + ) -> Result> { + if transfers.is_empty() { + return Ok(Vec::new()); + } + let sender_pairs: Vec<(Felt, Felt)> = transfers + .iter() + .filter(|t| t.from != Felt::ZERO) + .map(|t| (t.token, t.from)) + .collect::>() + .into_iter() + .collect(); + let current_balances = self.pg_get_balances_batch(&sender_pairs).await?; + let mut pending_debits: HashMap<(Felt, Felt), U256> = HashMap::new(); + let mut adjustment_requests = Vec::new(); + for transfer in transfers { + if transfer.from == Felt::ZERO { + continue; + } + let key = (transfer.token, transfer.from); + let stored_balance = current_balances + .get(&key) + .copied() + .unwrap_or(U256::from(0u64)); + let total_pending = pending_debits + .get(&key) + .copied() + .unwrap_or(U256::from(0u64)); + let total_needed = total_pending + transfer.amount; + if stored_balance >= total_needed { + pending_debits.insert(key, total_needed); + } else { + let block_before = transfer.block_number.saturating_sub(1); + let already_requested = + adjustment_requests.iter().any(|r: &BalanceFetchRequest| { + r.token == transfer.token + && r.wallet == transfer.from + && r.block_number == block_before + }); + if !already_requested { + adjustment_requests.push(BalanceFetchRequest { + token: transfer.token, + wallet: transfer.from, + block_number: block_before, + }); + } + } + } + Ok(adjustment_requests) + } + + async fn pg_apply_transfers_with_adjustments( + &self, + transfers: &[TransferData], + adjustments: &HashMap<(Felt, Felt), U256>, + ) -> Result<()> { + if transfers.is_empty() { + return Ok(()); + } + + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut balance_cache: HashMap<(Felt, Felt), U256> = HashMap::new(); + let select_balance_stmt = tx + .prepare("SELECT balance FROM erc20.balances WHERE token = $1 AND wallet = $2") + .await?; + let upsert_balance_stmt = tx + .prepare( + "INSERT INTO erc20.balances (token, wallet, balance, last_block, last_tx_hash, updated_at) + VALUES ($1, $2, $3, $4, $5, EXTRACT(EPOCH FROM NOW())::BIGINT) + ON CONFLICT (token, wallet) DO UPDATE SET + balance = EXCLUDED.balance, + last_block = EXCLUDED.last_block, + last_tx_hash = EXCLUDED.last_tx_hash, + updated_at = EXTRACT(EPOCH FROM NOW())::BIGINT", + ) + .await?; + let insert_adjustment_stmt = tx + .prepare( + "INSERT INTO erc20.balance_adjustments + (token, wallet, computed_balance, actual_balance, adjusted_at_block, tx_hash) + VALUES ($1, $2, $3, $4, $5, $6)", + ) + .await?; + + for transfer in transfers { + if transfer.from != Felt::ZERO { + let key = (transfer.token, transfer.from); + if let std::collections::hash_map::Entry::Vacant(e) = balance_cache.entry(key) { + let row = tx + .query_opt( + &select_balance_stmt, + &[&felt_to_blob(transfer.token), &felt_to_blob(transfer.from)], + ) + .await?; + let bal = row + .map(|r| blob_to_u256(&r.get::>(0))) + .unwrap_or(U256::from(0u64)); + e.insert(bal); + } + } + if transfer.to != Felt::ZERO { + let key = (transfer.token, transfer.to); + if let std::collections::hash_map::Entry::Vacant(e) = balance_cache.entry(key) { + let row = tx + .query_opt( + &select_balance_stmt, + &[&felt_to_blob(transfer.token), &felt_to_blob(transfer.to)], + ) + .await?; + let bal = row + .map(|r| blob_to_u256(&r.get::>(0))) + .unwrap_or(U256::from(0u64)); + e.insert(bal); + } + } + } + + let mut adjustments_to_record: Vec = Vec::new(); + for ((token, wallet), actual_balance) in adjustments { + let key = (*token, *wallet); + let computed = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + if computed != *actual_balance { + if let Some(transfer) = transfers + .iter() + .find(|t| t.token == *token && t.from == *wallet) + { + adjustments_to_record.push(BalanceAdjustment { + token: *token, + wallet: *wallet, + computed_balance: computed, + actual_balance: *actual_balance, + adjusted_at_block: transfer.block_number, + tx_hash: transfer.tx_hash, + }); + } + } + balance_cache.insert(key, *actual_balance); + } + + let mut last_block_per_wallet: HashMap<(Felt, Felt), (u64, Felt)> = HashMap::new(); + for transfer in transfers { + if transfer.from != Felt::ZERO { + let key = (transfer.token, transfer.from); + let current = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + let new_balance = if current >= transfer.amount { + current - transfer.amount + } else { + U256::from(0u64) + }; + balance_cache.insert(key, new_balance); + last_block_per_wallet.insert(key, (transfer.block_number, transfer.tx_hash)); + } + if transfer.to != Felt::ZERO { + let key = (transfer.token, transfer.to); + let current = balance_cache.get(&key).copied().unwrap_or(U256::from(0u64)); + balance_cache.insert(key, current + transfer.amount); + last_block_per_wallet.insert(key, (transfer.block_number, transfer.tx_hash)); + } + } + + for ((token, wallet), balance) in &balance_cache { + let (last_block, last_tx_hash) = last_block_per_wallet + .get(&(*token, *wallet)) + .copied() + .unwrap_or((0, Felt::ZERO)); + tx.execute( + &upsert_balance_stmt, + &[ + &felt_to_blob(*token), + &felt_to_blob(*wallet), + &u256_to_blob(*balance), + &(last_block as i64), + &felt_to_blob(last_tx_hash), + ], + ) + .await?; + } + + for adj in &adjustments_to_record { + tx.execute( + &insert_adjustment_stmt, + &[ + &felt_to_blob(adj.token), + &felt_to_blob(adj.wallet), + &u256_to_blob(adj.computed_balance), + &u256_to_blob(adj.actual_balance), + &(adj.adjusted_at_block as i64), + &felt_to_blob(adj.tx_hash), + ], + ) + .await?; + } + + tx.commit().await?; + Ok(()) + } + + async fn pg_has_token_metadata(&self, token: Felt) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc20.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.get::(0) > 0) + } + + async fn pg_has_token_metadata_batch(&self, tokens: &[Felt]) -> Result> { + if tokens.is_empty() { + return Ok(HashSet::new()); + } + + let client = self.pg_client().await?; + let blob_to_token: HashMap, Felt> = + tokens.iter().map(|t| (felt_to_blob(*t), *t)).collect(); + let blob_params: Vec> = blob_to_token.keys().cloned().collect(); + + let rows = client + .query( + "SELECT token FROM erc20.token_metadata WHERE token = ANY($1::bytea[])", + &[&blob_params], + ) + .await?; + + let mut existing = HashSet::new(); + for row in rows { + let token_blob: Vec = row.get(0); + if let Some(token) = blob_to_token.get(&token_blob) { + existing.insert(*token); + } + } + + Ok(existing) + } + + async fn pg_upsert_token_metadata( + &self, + token: Felt, + name: Option<&str>, + symbol: Option<&str>, + decimals: Option, + ) -> Result<()> { + let clean_name = name.map(|s| s.replace('\0', "")); + let clean_symbol = symbol.map(|s| s.replace('\0', "")); + let client = self.pg_client().await?; + client + .execute( + "INSERT INTO erc20.token_metadata (token, name, symbol, decimals) + VALUES ($1, $2, $3, $4) + ON CONFLICT (token) DO UPDATE SET + name = COALESCE(EXCLUDED.name, erc20.token_metadata.name), + symbol = COALESCE(EXCLUDED.symbol, erc20.token_metadata.symbol), + decimals = COALESCE(EXCLUDED.decimals, erc20.token_metadata.decimals)", + &[ + &felt_to_blob(token), + &clean_name.as_deref(), + &clean_symbol.as_deref(), + &decimals.map(|d| d as i64), + ], + ) + .await?; + Ok(()) + } + + async fn pg_get_token_metadata( + &self, + token: Felt, + ) -> Result, Option, Option)>> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT name, symbol, decimals FROM erc20.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.map(|r| { + let decimals: Option = r.get(2); + (r.get(0), r.get(1), decimals.map(|d| d as u8)) + })) + } + + async fn pg_get_token_metadata_paginated( + &self, + cursor: Option, + limit: u32, + ) -> Result<( + Vec<(Felt, Option, Option, Option)>, + Option, + )> { + let client = self.pg_client().await?; + let fetch_limit = limit.clamp(1, 1000) as i64 + 1; + let rows = if let Some(cursor_token) = cursor { + client + .query( + "SELECT token, name, symbol, decimals + FROM erc20.token_metadata + WHERE token > $1 + ORDER BY token ASC + LIMIT $2", + &[&felt_to_blob(cursor_token), &fetch_limit], + ) + .await? + } else { + client + .query( + "SELECT token, name, symbol, decimals + FROM erc20.token_metadata + ORDER BY token ASC + LIMIT $1", + &[&fetch_limit], + ) + .await? + }; + + let mut out: Vec<(Felt, Option, Option, Option)> = rows + .into_iter() + .map(|row| { + let decimals: Option = row.get(3); + ( + blob_to_felt(&row.get::>(0)), + row.get(1), + row.get(2), + decimals.map(|d| d as u8), + ) + }) + .collect(); + + let capped = limit.clamp(1, 1000) as usize; + let next_cursor = if out.len() > capped { + let next = out[capped].0; + out.truncate(capped); + Some(next) + } else { + None + }; + Ok((out, next_cursor)) + } } diff --git a/crates/torii-erc721/Cargo.toml b/crates/torii-erc721/Cargo.toml index 556d825..078e257 100644 --- a/crates/torii-erc721/Cargo.toml +++ b/crates/torii-erc721/Cargo.toml @@ -18,6 +18,7 @@ starknet = "0.17" # Storage rusqlite = { version = "0.32", features = ["bundled"] } +tokio-postgres = "0.7" # Serialization serde = { version = "1.0", features = ["derive"] } diff --git a/crates/torii-erc721/proto/erc721.proto b/crates/torii-erc721/proto/erc721.proto index cb8bd26..7fbc598 100644 --- a/crates/torii-erc721/proto/erc721.proto +++ b/crates/torii-erc721/proto/erc721.proto @@ -162,6 +162,54 @@ message GetOwnerResponse { optional bytes owner = 1; } +// ===== Attribute Search ===== + +// OR-within-key filter values; AND logic is applied across keys. +message AttributeFilter { + // Attribute key / trait_type + string key = 1; + // Accepted values for this key (OR) + repeated string values = 2; +} + +// Facet count entry for UI filtering +message AttributeFacetCount { + // Attribute key / trait_type + string key = 1; + // Attribute value + string value = 2; + // Number of matching tokens containing this key/value + uint64 count = 3; +} + +// Request for QueryTokensByAttributes RPC +message QueryTokensByAttributesRequest { + // Token contract address (required, 32 bytes) + bytes token = 1; + // Attribute filters (AND across entries) + repeated AttributeFilter filters = 2; + // Cursor token_id (exclusive) for pagination + optional bytes cursor_token_id = 3; + // Maximum number of token IDs to return (default: 100, max: 1000) + uint32 limit = 4; + // Include facet counts in response + bool include_facets = 5; + // Maximum number of facet rows to return (default: 100, max: 1000) + uint32 facet_limit = 6; +} + +// Response for QueryTokensByAttributes RPC +message QueryTokensByAttributesResponse { + // Matched token IDs (U256 bytes) + repeated bytes token_ids = 1; + // Cursor for next page (absent if no more results) + optional bytes next_cursor_token_id = 2; + // Total number of matched token IDs (without pagination) + uint64 total_hits = 3; + // Facet counts over the matched set + repeated AttributeFacetCount facets = 4; +} + // ===== Subscription RPCs ===== // Request for SubscribeTransfers RPC @@ -245,6 +293,9 @@ service Erc721 { // Get token metadata (name, symbol) rpc GetTokenMetadata(GetTokenMetadataRequest) returns (GetTokenMetadataResponse); + // Query token IDs by flattened metadata attributes (supports intersections) + rpc QueryTokensByAttributes(QueryTokensByAttributesRequest) returns (QueryTokensByAttributesResponse); + // Subscribe to real-time transfer events with filtering rpc SubscribeTransfers(SubscribeTransfersRequest) returns (stream TransferUpdate); diff --git a/crates/torii-erc721/src/generated/erc721_descriptor.bin b/crates/torii-erc721/src/generated/erc721_descriptor.bin index 5430539..3a0da09 100644 Binary files a/crates/torii-erc721/src/generated/erc721_descriptor.bin and b/crates/torii-erc721/src/generated/erc721_descriptor.bin differ diff --git a/crates/torii-erc721/src/generated/torii.sinks.erc721.rs b/crates/torii-erc721/src/generated/torii.sinks.erc721.rs index c852005..7e1084a 100644 --- a/crates/torii-erc721/src/generated/torii.sinks.erc721.rs +++ b/crates/torii-erc721/src/generated/torii.sinks.erc721.rs @@ -201,6 +201,67 @@ pub struct GetOwnerResponse { #[prost(bytes = "vec", optional, tag = "1")] pub owner: ::core::option::Option<::prost::alloc::vec::Vec>, } +/// OR-within-key filter values; AND logic is applied across keys. +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AttributeFilter { + /// Attribute key / trait_type + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, + /// Accepted values for this key (OR) + #[prost(string, repeated, tag = "2")] + pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// Facet count entry for UI filtering +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AttributeFacetCount { + /// Attribute key / trait_type + #[prost(string, tag = "1")] + pub key: ::prost::alloc::string::String, + /// Attribute value + #[prost(string, tag = "2")] + pub value: ::prost::alloc::string::String, + /// Number of matching tokens containing this key/value + #[prost(uint64, tag = "3")] + pub count: u64, +} +/// Request for QueryTokensByAttributes RPC +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTokensByAttributesRequest { + /// Token contract address (required, 32 bytes) + #[prost(bytes = "vec", tag = "1")] + pub token: ::prost::alloc::vec::Vec, + /// Attribute filters (AND across entries) + #[prost(message, repeated, tag = "2")] + pub filters: ::prost::alloc::vec::Vec, + /// Cursor token_id (exclusive) for pagination + #[prost(bytes = "vec", optional, tag = "3")] + pub cursor_token_id: ::core::option::Option<::prost::alloc::vec::Vec>, + /// Maximum number of token IDs to return (default: 100, max: 1000) + #[prost(uint32, tag = "4")] + pub limit: u32, + /// Include facet counts in response + #[prost(bool, tag = "5")] + pub include_facets: bool, + /// Maximum number of facet rows to return (default: 100, max: 1000) + #[prost(uint32, tag = "6")] + pub facet_limit: u32, +} +/// Response for QueryTokensByAttributes RPC +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct QueryTokensByAttributesResponse { + /// Matched token IDs (U256 bytes) + #[prost(bytes = "vec", repeated, tag = "1")] + pub token_ids: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + /// Cursor for next page (absent if no more results) + #[prost(bytes = "vec", optional, tag = "2")] + pub next_cursor_token_id: ::core::option::Option<::prost::alloc::vec::Vec>, + /// Total number of matched token IDs (without pagination) + #[prost(uint64, tag = "3")] + pub total_hits: u64, + /// Facet counts over the matched set + #[prost(message, repeated, tag = "4")] + pub facets: ::prost::alloc::vec::Vec, +} /// Request for SubscribeTransfers RPC #[derive(Clone, PartialEq, ::prost::Message)] pub struct SubscribeTransfersRequest { @@ -324,6 +385,14 @@ pub mod erc721_server { tonic::Response, tonic::Status, >; + /// Query token IDs by flattened metadata attributes (supports intersections) + async fn query_tokens_by_attributes( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; /// Server streaming response type for the SubscribeTransfers method. type SubscribeTransfersStream: tonic::codegen::tokio_stream::Stream< Item = std::result::Result, @@ -602,6 +671,54 @@ pub mod erc721_server { }; Box::pin(fut) } + "/torii.sinks.erc721.Erc721/QueryTokensByAttributes" => { + #[allow(non_camel_case_types)] + struct QueryTokensByAttributesSvc(pub Arc); + impl< + T: Erc721, + > tonic::server::UnaryService + for QueryTokensByAttributesSvc { + type Response = super::QueryTokensByAttributesResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::QueryTokensByAttributesRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::query_tokens_by_attributes(&inner, request) + .await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = QueryTokensByAttributesSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/torii.sinks.erc721.Erc721/SubscribeTransfers" => { #[allow(non_camel_case_types)] struct SubscribeTransfersSvc(pub Arc); diff --git a/crates/torii-erc721/src/grpc_service.rs b/crates/torii-erc721/src/grpc_service.rs index 1ffc343..e0fd213 100644 --- a/crates/torii-erc721/src/grpc_service.rs +++ b/crates/torii-erc721/src/grpc_service.rs @@ -1,11 +1,11 @@ //! gRPC service implementation for ERC721 queries and subscriptions use crate::proto::{ - erc721_server::Erc721 as Erc721Trait, Cursor, GetOwnerRequest, GetOwnerResponse, - GetOwnershipRequest, GetOwnershipResponse, GetStatsRequest, GetStatsResponse, + erc721_server::Erc721 as Erc721Trait, AttributeFacetCount, Cursor, GetOwnerRequest, + GetOwnerResponse, GetOwnershipRequest, GetOwnershipResponse, GetStatsRequest, GetStatsResponse, GetTokenMetadataRequest, GetTokenMetadataResponse, GetTransfersRequest, GetTransfersResponse, - NftTransfer, Ownership, SubscribeTransfersRequest, TokenMetadataEntry, TransferFilter, - TransferUpdate, + NftTransfer, Ownership, QueryTokensByAttributesRequest, QueryTokensByAttributesResponse, + SubscribeTransfersRequest, TokenMetadataEntry, TransferFilter, TransferUpdate, }; use crate::storage::{Erc721Storage, NftTransferData, TransferCursor}; use async_trait::async_trait; @@ -155,6 +155,7 @@ impl Erc721Trait for Erc721Service { cursor, limit, ) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let proto_transfers: Vec = @@ -202,6 +203,7 @@ impl Erc721Trait for Erc721Service { let (ownership, next_cursor) = self .storage .get_ownership_by_owner(owner, &tokens, cursor, limit) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let proto_ownership: Vec = ownership @@ -239,6 +241,7 @@ impl Erc721Trait for Erc721Service { let owner = self .storage .get_owner(token, token_id) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; Ok(Response::new(GetOwnerResponse { @@ -257,7 +260,7 @@ impl Erc721Trait for Erc721Service { let token = bytes_to_felt(&token_bytes) .ok_or_else(|| Status::invalid_argument("Invalid token address"))?; - let entries = match self.storage.get_token_metadata(token) { + let entries = match self.storage.get_token_metadata(token).await { Ok(Some((name, symbol, total_supply))) => vec![TokenMetadataEntry { token: token.to_bytes_be().to_vec(), name, @@ -284,6 +287,7 @@ impl Erc721Trait for Erc721Service { let (all, next_cursor) = self .storage .get_token_metadata_paginated(cursor, limit) + .await .map_err(|e| Status::internal(format!("Query failed: {e}")))?; let entries = all @@ -302,6 +306,58 @@ impl Erc721Trait for Erc721Service { })) } + /// Query token IDs by flattened metadata attributes (OR within key, AND across keys). + async fn query_tokens_by_attributes( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + let token = bytes_to_felt(&req.token) + .ok_or_else(|| Status::invalid_argument("Invalid token address"))?; + let cursor_token_id = req.cursor_token_id.as_ref().map(|b| bytes_to_u256(b)); + let limit = if req.limit == 0 { + 100 + } else { + req.limit.min(1000) + }; + let facet_limit = if req.facet_limit == 0 { + 100 + } else { + req.facet_limit.min(1000) + }; + + let filters: Vec<(String, Vec)> = + req.filters.into_iter().map(|f| (f.key, f.values)).collect(); + + let result = self + .storage + .query_token_ids_by_attributes( + token, + &filters, + cursor_token_id, + limit, + req.include_facets, + facet_limit, + ) + .await + .map_err(|e| Status::internal(format!("Query failed: {e}")))?; + + Ok(Response::new(QueryTokensByAttributesResponse { + token_ids: result.token_ids.into_iter().map(u256_to_bytes).collect(), + next_cursor_token_id: result.next_cursor_token_id.map(u256_to_bytes), + total_hits: result.total_hits, + facets: result + .facets + .into_iter() + .map(|f| AttributeFacetCount { + key: f.key, + value: f.value, + count: f.count, + }) + .collect(), + })) + } + /// Subscribe to real-time transfer events type SubscribeTransfersStream = Pin> + Send>>; @@ -359,21 +415,25 @@ impl Erc721Trait for Erc721Service { let total_transfers = self .storage .get_transfer_count() + .await .map_err(|e| Status::internal(format!("Failed to get transfer count: {e}")))?; let unique_tokens = self .storage .get_token_count() + .await .map_err(|e| Status::internal(format!("Failed to get token count: {e}")))?; let unique_nfts = self .storage .get_nft_count() + .await .map_err(|e| Status::internal(format!("Failed to get NFT count: {e}")))?; let latest_block = self .storage .get_latest_block() + .await .map_err(|e| Status::internal(format!("Failed to get latest block: {e}")))? .unwrap_or(0); diff --git a/crates/torii-erc721/src/sink.rs b/crates/torii-erc721/src/sink.rs index f9c6ee3..57ae1f9 100644 --- a/crates/torii-erc721/src/sink.rs +++ b/crates/torii-erc721/src/sink.rs @@ -15,6 +15,7 @@ use prost_types::Any; use starknet::core::types::Felt; use starknet::providers::jsonrpc::{HttpTransport, JsonRpcClient}; use std::collections::{HashMap, HashSet}; +use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Arc; use torii::etl::sink::{EventBus, TopicInfo}; use torii::etl::{Envelope, ExtractionBatch, Sink, TypeId}; @@ -44,6 +45,9 @@ pub struct Erc721Sink { metadata_fetcher: Option>, /// Token URI service sender for async URI fetching token_uri_sender: Option, + /// In-memory counters to avoid full-table COUNT(*) in the ingest hot path. + total_transfers: AtomicU64, + total_operator_approvals: AtomicU64, } impl Erc721Sink { @@ -54,6 +58,9 @@ impl Erc721Sink { grpc_service: None, metadata_fetcher: None, token_uri_sender: None, + // Avoid startup full-table COUNT(*) scans on large datasets. + total_transfers: AtomicU64::new(0), + total_operator_approvals: AtomicU64::new(0), } } @@ -179,6 +186,8 @@ impl Sink for Erc721Sink { async fn process(&self, envelopes: &[Envelope], batch: &ExtractionBatch) -> Result<()> { let mut transfers: Vec = Vec::new(); let mut operator_approvals: Vec = Vec::new(); + let mut inserted_transfers: u64 = 0; + let mut inserted_operator_approvals: u64 = 0; // Get block timestamps from batch let block_timestamps: HashMap = batch @@ -253,7 +262,9 @@ impl Sink for Erc721Sink { if let Some(ref sender) = self.token_uri_sender { // For batch updates, we need to know which token IDs exist in the range. // Fetch them from storage and request URI updates for each. - if let Ok(uris) = self.storage.get_token_uris_by_contract(update.token) { + if let Ok(uris) = + self.storage.get_token_uris_by_contract(update.token).await + { for (token_id, _, _) in &uris { if *token_id >= update.from_token_id && *token_id <= update.to_token_id @@ -279,7 +290,7 @@ impl Sink for Erc721Sink { if let Some(ref fetcher) = self.metadata_fetcher { let new_tokens: HashSet = transfers.iter().map(|t| t.token).collect(); for token in new_tokens { - match self.storage.has_token_metadata(token) { + match self.storage.has_token_metadata(token).await { Ok(exists) => { if exists { continue; @@ -293,12 +304,16 @@ impl Sink for Erc721Sink { symbol = ?meta.symbol, "Fetched token metadata" ); - if let Err(e) = self.storage.upsert_token_metadata( - token, - meta.name.as_deref(), - meta.symbol.as_deref(), - meta.total_supply, - ) { + if let Err(e) = self + .storage + .upsert_token_metadata( + token, + meta.name.as_deref(), + meta.symbol.as_deref(), + meta.total_supply, + ) + .await + { tracing::warn!( target: "torii_erc721::sink", error = %e, @@ -344,6 +359,7 @@ impl Sink for Erc721Sink { match self .storage .has_token_uri(transfer.token, transfer.token_id) + .await { Ok(false) => { sender @@ -368,7 +384,7 @@ impl Sink for Erc721Sink { // Batch insert transfers if !transfers.is_empty() { - let transfer_count = match self.storage.insert_transfers_batch(&transfers) { + let transfer_count = match self.storage.insert_transfers_batch(&transfers).await { Ok(count) => count, Err(e) => { tracing::error!( @@ -382,6 +398,10 @@ impl Sink for Erc721Sink { }; if transfer_count > 0 { + inserted_transfers = transfer_count as u64; + self.total_transfers + .fetch_add(inserted_transfers, Ordering::Relaxed); + tracing::info!( target: "torii_erc721::sink", count = transfer_count, @@ -437,8 +457,13 @@ impl Sink for Erc721Sink { match self .storage .insert_operator_approvals_batch(&operator_approvals) + .await { Ok(count) => { + inserted_operator_approvals = count as u64; + self.total_operator_approvals + .fetch_add(inserted_operator_approvals, Ordering::Relaxed); + tracing::info!( target: "torii_erc721::sink", count = count, @@ -457,22 +482,17 @@ impl Sink for Erc721Sink { } } - // Log combined statistics - if !transfers.is_empty() || !operator_approvals.is_empty() { - if let Ok(total_transfers) = self.storage.get_transfer_count() { - if let Ok(nft_count) = self.storage.get_nft_count() { - if let Ok(token_count) = self.storage.get_token_count() { - tracing::info!( - target: "torii_erc721::sink", - transfers = total_transfers, - nfts = nft_count, - collections = token_count, - blocks = batch.blocks.len(), - "Total statistics" - ); - } - } - } + // Log combined statistics without full-table scans. + if inserted_transfers > 0 || inserted_operator_approvals > 0 { + tracing::info!( + target: "torii_erc721::sink", + batch_transfers = inserted_transfers, + batch_operator_approvals = inserted_operator_approvals, + total_transfers = self.total_transfers.load(Ordering::Relaxed), + total_operator_approvals = self.total_operator_approvals.load(Ordering::Relaxed), + blocks = batch.blocks.len(), + "Total statistics" + ); } Ok(()) diff --git a/crates/torii-erc721/src/storage.rs b/crates/torii-erc721/src/storage.rs index e5f3bdf..a3f3de7 100644 --- a/crates/torii-erc721/src/storage.rs +++ b/crates/torii-erc721/src/storage.rs @@ -7,13 +7,22 @@ use anyhow::Result; use rusqlite::{params, Connection}; use starknet::core::types::{Felt, U256}; use std::sync::{Arc, Mutex}; +use tokio_postgres::{types::ToSql as PgToSql, Client, NoTls}; use torii_common::{ blob_to_felt, blob_to_u256, felt_to_blob, u256_to_blob, TokenUriResult, TokenUriStore, }; /// Storage for ERC721 NFT data pub struct Erc721Storage { + backend: StorageBackend, conn: Arc>, + pg_conn: Option>>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum StorageBackend { + Sqlite, + Postgres, } /// NFT transfer data for batch insertion @@ -75,9 +84,139 @@ pub struct OwnershipCursor { pub id: i64, } +/// Aggregated facet count for one key/value pair. +pub struct AttributeFacetCount { + pub key: String, + pub value: String, + pub count: u64, +} + +/// Result of token ID search by attributes. +pub struct TokenAttributeQueryResult { + pub token_ids: Vec, + pub next_cursor_token_id: Option, + pub total_hits: u64, + pub facets: Vec, +} + impl Erc721Storage { /// Create or open the database - pub fn new(db_path: &str) -> Result { + pub async fn new(db_path: &str) -> Result { + if db_path.starts_with("postgres://") || db_path.starts_with("postgresql://") { + let (client, connection) = tokio_postgres::connect(db_path, NoTls).await?; + tokio::spawn(async move { + if let Err(e) = connection.await { + tracing::error!(target: "torii_erc721::storage", error = %e, "PostgreSQL connection task failed"); + } + }); + client.batch_execute( + r" + CREATE SCHEMA IF NOT EXISTS erc721; + + CREATE TABLE IF NOT EXISTS erc721.nft_ownership ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + owner BYTEA NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT, + UNIQUE(token, token_id) + ); + CREATE INDEX IF NOT EXISTS idx_nft_ownership_owner ON erc721.nft_ownership(owner); + CREATE INDEX IF NOT EXISTS idx_nft_ownership_token ON erc721.nft_ownership(token); + + CREATE TABLE IF NOT EXISTS erc721.nft_transfers ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + from_addr BYTEA NOT NULL, + to_addr BYTEA NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT, + UNIQUE(token, tx_hash, token_id, from_addr, to_addr) + ); + CREATE INDEX IF NOT EXISTS idx_nft_transfers_token ON erc721.nft_transfers(token); + CREATE INDEX IF NOT EXISTS idx_nft_transfers_from ON erc721.nft_transfers(from_addr); + CREATE INDEX IF NOT EXISTS idx_nft_transfers_to ON erc721.nft_transfers(to_addr); + CREATE INDEX IF NOT EXISTS idx_nft_transfers_block ON erc721.nft_transfers(block_number DESC); + CREATE INDEX IF NOT EXISTS idx_nft_transfers_token_id ON erc721.nft_transfers(token, token_id); + + CREATE TABLE IF NOT EXISTS erc721.nft_wallet_activity ( + id BIGSERIAL PRIMARY KEY, + wallet_address BYTEA NOT NULL, + token BYTEA NOT NULL, + transfer_id BIGINT NOT NULL REFERENCES erc721.nft_transfers(id), + direction TEXT NOT NULL CHECK(direction IN ('sent', 'received', 'both')), + block_number BIGINT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_nft_wallet_activity_wallet_block ON erc721.nft_wallet_activity(wallet_address, block_number DESC); + CREATE INDEX IF NOT EXISTS idx_nft_wallet_activity_wallet_token ON erc721.nft_wallet_activity(wallet_address, token, block_number DESC); + + CREATE TABLE IF NOT EXISTS erc721.nft_approvals ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + owner BYTEA NOT NULL, + approved BYTEA NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT + ); + + CREATE TABLE IF NOT EXISTS erc721.nft_operators ( + id BIGSERIAL PRIMARY KEY, + token BYTEA NOT NULL, + owner BYTEA NOT NULL, + operator BYTEA NOT NULL, + approved BIGINT NOT NULL, + block_number BIGINT NOT NULL, + tx_hash BYTEA NOT NULL, + timestamp BIGINT, + UNIQUE(token, owner, operator) + ); + + CREATE TABLE IF NOT EXISTS erc721.token_metadata ( + token BYTEA PRIMARY KEY, + name TEXT, + symbol TEXT, + total_supply BYTEA + ); + + CREATE TABLE IF NOT EXISTS erc721.token_uris ( + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + uri TEXT, + metadata_json TEXT, + updated_at BIGINT NOT NULL DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + PRIMARY KEY (token, token_id) + ); + CREATE INDEX IF NOT EXISTS idx_token_uris_token ON erc721.token_uris(token); + + CREATE TABLE IF NOT EXISTS erc721.token_attributes ( + token BYTEA NOT NULL, + token_id BYTEA NOT NULL, + key TEXT NOT NULL, + value TEXT NOT NULL, + PRIMARY KEY (token, token_id, key) + ); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token ON erc721.token_attributes(token); + CREATE INDEX IF NOT EXISTS idx_token_attributes_key ON erc721.token_attributes(key); + CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON erc721.token_attributes(key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_key_value ON erc721.token_attributes(token, key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_token_id ON erc721.token_attributes(token, token_id); + ", + ).await?; + + tracing::info!(target: "torii_erc721::storage", "PostgreSQL storage initialized"); + return Ok(Self { + backend: StorageBackend::Postgres, + conn: Arc::new(Mutex::new(Connection::open_in_memory()?)), + pg_conn: Some(Arc::new(tokio::sync::Mutex::new(client))), + }); + } + let conn = Connection::open(db_path)?; // Enable WAL mode + Performance PRAGMAs @@ -88,6 +227,7 @@ impl Erc721Storage { PRAGMA cache_size=-64000; PRAGMA temp_store=MEMORY; PRAGMA mmap_size=268435456; + PRAGMA wal_autocheckpoint=10000; PRAGMA page_size=4096; PRAGMA busy_timeout=5000;", )?; @@ -249,18 +389,25 @@ impl Erc721Storage { ); CREATE INDEX IF NOT EXISTS idx_token_attributes_token ON token_attributes(token); CREATE INDEX IF NOT EXISTS idx_token_attributes_key ON token_attributes(key); - CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON token_attributes(key, value);", + CREATE INDEX IF NOT EXISTS idx_token_attributes_key_value ON token_attributes(key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_key_value ON token_attributes(token, key, value); + CREATE INDEX IF NOT EXISTS idx_token_attributes_token_token_id ON token_attributes(token, token_id);", )?; tracing::info!(target: "torii_erc721::storage", db_path = %db_path, "ERC721 database initialized"); Ok(Self { + backend: StorageBackend::Sqlite, conn: Arc::new(Mutex::new(conn)), + pg_conn: None, }) } /// Insert multiple transfers and update ownership in a single transaction - pub fn insert_transfers_batch(&self, transfers: &[NftTransferData]) -> Result { + pub async fn insert_transfers_batch(&self, transfers: &[NftTransferData]) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_transfers_batch(transfers).await; + } if transfers.is_empty() { return Ok(0); } @@ -280,6 +427,18 @@ impl Erc721Storage { "INSERT OR REPLACE INTO nft_ownership (token, token_id, owner, block_number, tx_hash, timestamp) VALUES (?1, ?2, ?3, ?4, ?5, COALESCE(?6, strftime('%s', 'now')))", )?; + let mut wallet_both_stmt = tx.prepare_cached( + "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'both', ?4)", + )?; + let mut wallet_sent_stmt = tx.prepare_cached( + "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'sent', ?4)", + )?; + let mut wallet_received_stmt = tx.prepare_cached( + "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES (?1, ?2, ?3, 'received', ?4)", + )?; for transfer in transfers { let token_blob = felt_to_blob(transfer.token); @@ -320,25 +479,28 @@ impl Erc721Storage { && transfer.to != Felt::ZERO && transfer.from == transfer.to { - tx.execute( - "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'both', ?)", - params![&from_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_both_stmt.execute(params![ + &from_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } else { if transfer.from != Felt::ZERO { - tx.execute( - "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'sent', ?)", - params![&from_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_sent_stmt.execute(params![ + &from_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } if transfer.to != Felt::ZERO { - tx.execute( - "INSERT INTO nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) - VALUES (?, ?, ?, 'received', ?)", - params![&to_blob, &token_blob, transfer_id, transfer.block_number], - )?; + wallet_received_stmt.execute(params![ + &to_blob, + &token_blob, + transfer_id, + transfer.block_number + ])?; } } } @@ -350,10 +512,13 @@ impl Erc721Storage { } /// Insert operator approvals in a single transaction - pub fn insert_operator_approvals_batch( + pub async fn insert_operator_approvals_batch( &self, approvals: &[OperatorApprovalData], ) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_insert_operator_approvals_batch(approvals).await; + } if approvals.is_empty() { return Ok(0); } @@ -394,7 +559,7 @@ impl Erc721Storage { } /// Get filtered transfers with cursor-based pagination - pub fn get_transfers_filtered( + pub async fn get_transfers_filtered( &self, wallet: Option, from: Option, @@ -406,6 +571,13 @@ impl Erc721Storage { cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_transfers_filtered( + wallet, from, to, tokens, token_ids, block_from, block_to, cursor, limit, + ) + .await; + } let conn = self.conn.lock().unwrap(); let mut query = String::new(); @@ -522,7 +694,10 @@ impl Erc721Storage { } /// Get current owner of a specific NFT - pub fn get_owner(&self, token: Felt, token_id: U256) -> Result> { + pub async fn get_owner(&self, token: Felt, token_id: U256) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_owner(token, token_id).await; + } let conn = self.conn.lock().unwrap(); let result: Result, _> = conn.query_row( @@ -539,13 +714,18 @@ impl Erc721Storage { } /// Get ownership records filtered by owner - pub fn get_ownership_by_owner( + pub async fn get_ownership_by_owner( &self, owner: Felt, tokens: &[Felt], cursor: Option, limit: u32, ) -> Result<(Vec, Option)> { + if self.backend == StorageBackend::Postgres { + return self + .pg_get_ownership_by_owner(owner, tokens, cursor, limit) + .await; + } let conn = self.conn.lock().unwrap(); let mut query = String::from( @@ -605,8 +785,135 @@ impl Erc721Storage { Ok((ownership, next_cursor)) } + /// Query token IDs by flattened metadata attributes. + /// + /// Filter semantics: + /// - OR within a single key (`values`) + /// - AND across keys (`filters`) + pub async fn query_token_ids_by_attributes( + &self, + token: Felt, + filters: &[(String, Vec)], + cursor_token_id: Option, + limit: u32, + include_facets: bool, + facet_limit: u32, + ) -> Result { + let filters = Self::normalize_attribute_filters(filters); + let page_limit = limit.clamp(1, 1000); + let page_fetch = page_limit as i64 + 1; + let facet_limit = facet_limit.clamp(1, 1000) as i64; + + if self.backend == StorageBackend::Postgres { + return self + .pg_query_token_ids_by_attributes( + token, + &filters, + cursor_token_id, + page_fetch, + include_facets, + facet_limit, + ) + .await; + } + + let conn = self.conn.lock().unwrap(); + + let mut query = String::from("SELECT u.token_id FROM token_uris u WHERE u.token = ?"); + let mut params: Vec> = vec![Box::new(felt_to_blob(token))]; + if let Some(cursor) = cursor_token_id { + query.push_str(" AND u.token_id > ?"); + params.push(Box::new(u256_to_blob(cursor))); + } + Self::sqlite_append_attribute_exists_filters(&mut query, &mut params, &filters, "u"); + query.push_str(" ORDER BY u.token_id ASC LIMIT ?"); + params.push(Box::new(page_fetch)); + + let mut stmt = conn.prepare(&query)?; + let params_refs: Vec<&dyn rusqlite::ToSql> = + params.iter().map(std::convert::AsRef::as_ref).collect(); + let rows = stmt.query_map(params_refs.as_slice(), |row| row.get::<_, Vec>(0))?; + let mut token_ids: Vec = rows + .collect::>, _>>()? + .into_iter() + .map(|b| blob_to_u256(&b)) + .collect(); + + let next_cursor_token_id = if token_ids.len() > page_limit as usize { + let next = token_ids[page_limit as usize]; + token_ids.truncate(page_limit as usize); + Some(next) + } else { + None + }; + + let mut count_query = String::from("SELECT COUNT(*) FROM token_uris u WHERE u.token = ?"); + let mut count_params: Vec> = vec![Box::new(felt_to_blob(token))]; + Self::sqlite_append_attribute_exists_filters( + &mut count_query, + &mut count_params, + &filters, + "u", + ); + let count_refs: Vec<&dyn rusqlite::ToSql> = count_params + .iter() + .map(std::convert::AsRef::as_ref) + .collect(); + let total_hits: i64 = + conn.query_row(&count_query, count_refs.as_slice(), |row| row.get(0))?; + + let facets = if include_facets { + let mut facet_query = String::from( + "SELECT a.key, a.value, COUNT(*) AS cnt + FROM token_attributes a + JOIN token_uris u ON u.token = a.token AND u.token_id = a.token_id + WHERE u.token = ?", + ); + let mut facet_params: Vec> = + vec![Box::new(felt_to_blob(token))]; + Self::sqlite_append_attribute_exists_filters( + &mut facet_query, + &mut facet_params, + &filters, + "u", + ); + facet_query.push_str( + " GROUP BY a.key, a.value + ORDER BY cnt DESC, a.key ASC, a.value ASC + LIMIT ?", + ); + facet_params.push(Box::new(facet_limit)); + + let facet_refs: Vec<&dyn rusqlite::ToSql> = facet_params + .iter() + .map(std::convert::AsRef::as_ref) + .collect(); + let mut stmt = conn.prepare(&facet_query)?; + let rows = stmt.query_map(facet_refs.as_slice(), |row| { + Ok(AttributeFacetCount { + key: row.get(0)?, + value: row.get(1)?, + count: row.get::<_, i64>(2)? as u64, + }) + })?; + rows.collect::, _>>()? + } else { + Vec::new() + }; + + Ok(TokenAttributeQueryResult { + token_ids, + next_cursor_token_id, + total_hits: total_hits as u64, + facets, + }) + } + /// Get transfer count - pub fn get_transfer_count(&self) -> Result { + pub async fn get_transfer_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_transfer_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM nft_transfers", [], |row| row.get(0))?; @@ -614,7 +921,10 @@ impl Erc721Storage { } /// Get unique token contract count - pub fn get_token_count(&self) -> Result { + pub async fn get_token_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row( "SELECT COUNT(DISTINCT token) FROM nft_transfers", @@ -625,7 +935,10 @@ impl Erc721Storage { } /// Get unique NFT count - pub fn get_nft_count(&self) -> Result { + pub async fn get_nft_count(&self) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_get_nft_count().await; + } let conn = self.conn.lock().unwrap(); let count: i64 = conn.query_row("SELECT COUNT(*) FROM nft_ownership", [], |row| row.get(0))?; @@ -633,7 +946,10 @@ impl Erc721Storage { } /// Get latest block number indexed - pub fn get_latest_block(&self) -> Result> { + pub async fn get_latest_block(&self) -> Result> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_latest_block().await; + } let conn = self.conn.lock().unwrap(); let block: Option = conn .query_row("SELECT MAX(block_number) FROM nft_transfers", [], |row| { @@ -646,7 +962,10 @@ impl Erc721Storage { // ===== Token Metadata Methods ===== /// Check if metadata exists for a token - pub fn has_token_metadata(&self, token: Felt) -> Result { + pub async fn has_token_metadata(&self, token: Felt) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let count: i64 = conn.query_row( @@ -658,13 +977,18 @@ impl Erc721Storage { } /// Insert or update token metadata - pub fn upsert_token_metadata( + pub async fn upsert_token_metadata( &self, token: Felt, name: Option<&str>, symbol: Option<&str>, total_supply: Option, ) -> Result<()> { + if self.backend == StorageBackend::Postgres { + return self + .pg_upsert_token_metadata(token, name, symbol, total_supply) + .await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let supply_blob = total_supply.map(u256_to_blob); @@ -681,10 +1005,13 @@ impl Erc721Storage { } /// Get token metadata - pub fn get_token_metadata( + pub async fn get_token_metadata( &self, token: Felt, ) -> Result, Option, Option)>> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let result = conn @@ -703,7 +1030,7 @@ impl Erc721Storage { } /// Get all token metadata - pub fn get_all_token_metadata( + pub async fn get_all_token_metadata( &self, ) -> Result, Option, Option)>> { let conn = self.conn.lock().unwrap(); @@ -727,7 +1054,7 @@ impl Erc721Storage { /// Get token metadata with cursor-based pagination. /// /// Returns at most `limit` rows and an optional next cursor token. - pub fn get_token_metadata_paginated( + pub async fn get_token_metadata_paginated( &self, cursor: Option, limit: u32, @@ -735,6 +1062,9 @@ impl Erc721Storage { Vec<(Felt, Option, Option, Option)>, Option, )> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_metadata_paginated(cursor, limit).await; + } let conn = self.conn.lock().unwrap(); let fetch_limit = limit.clamp(1, 1000) as usize + 1; @@ -795,7 +1125,10 @@ impl Erc721Storage { } /// Returns true if a token URI row exists for `(token, token_id)`. - pub fn has_token_uri(&self, token: Felt, token_id: U256) -> Result { + pub async fn has_token_uri(&self, token: Felt, token_id: U256) -> Result { + if self.backend == StorageBackend::Postgres { + return self.pg_has_token_uri(token, token_id).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let token_id_blob = u256_to_blob(token_id); @@ -808,10 +1141,13 @@ impl Erc721Storage { } /// Returns all token URI rows for a given contract. - pub fn get_token_uris_by_contract( + pub async fn get_token_uris_by_contract( &self, token: Felt, ) -> Result, Option)>> { + if self.backend == StorageBackend::Postgres { + return self.pg_get_token_uris_by_contract(token).await; + } let conn = self.conn.lock().unwrap(); let token_blob = felt_to_blob(token); let mut stmt = conn.prepare( @@ -828,11 +1164,729 @@ impl Erc721Storage { })?; rows.collect::, _>>().map_err(Into::into) } + + async fn pg_client(&self) -> Result> { + let conn = self + .pg_conn + .as_ref() + .ok_or_else(|| anyhow::anyhow!("PostgreSQL connection not initialized"))?; + Ok(conn.lock().await) + } + + fn pg_next_param( + params: &mut Vec>, + value: impl PgToSql + Sync + Send + 'static, + ) -> String { + params.push(Box::new(value)); + format!("${}", params.len()) + } + + fn normalize_attribute_filters( + filters: &[(String, Vec)], + ) -> Vec<(String, Vec)> { + filters + .iter() + .filter_map(|(key, values)| { + let key = key.trim(); + if key.is_empty() { + return None; + } + + let mut out_values: Vec = Vec::new(); + for value in values { + let value = value.trim(); + if value.is_empty() || out_values.iter().any(|v| v == value) { + continue; + } + out_values.push(value.to_owned()); + } + + if out_values.is_empty() { + None + } else { + Some((key.to_owned(), out_values)) + } + }) + .collect() + } + + fn sqlite_append_attribute_exists_filters( + query: &mut String, + params: &mut Vec>, + filters: &[(String, Vec)], + parent_alias: &str, + ) { + for (key, values) in filters { + query.push_str(&format!( + " AND EXISTS ( + SELECT 1 FROM token_attributes a + WHERE a.token = {parent_alias}.token + AND a.token_id = {parent_alias}.token_id + AND a.key = ? AND a.value IN (" + )); + params.push(Box::new(key.clone())); + let placeholders = values.iter().map(|_| "?").collect::>().join(","); + query.push_str(&placeholders); + query.push_str("))"); + for value in values { + params.push(Box::new(value.clone())); + } + } + } + + fn pg_append_attribute_exists_filters( + query: &mut String, + params: &mut Vec>, + filters: &[(String, Vec)], + parent_alias: &str, + ) { + for (key, values) in filters { + query.push_str(&format!( + " AND EXISTS ( + SELECT 1 FROM erc721.token_attributes a + WHERE a.token = {parent_alias}.token + AND a.token_id = {parent_alias}.token_id + AND a.key = " + )); + query.push_str(&Self::pg_next_param(params, key.clone())); + query.push_str(" AND a.value IN ("); + let value_placeholders = values + .iter() + .map(|value| Self::pg_next_param(params, value.clone())) + .collect::>() + .join(","); + query.push_str(&value_placeholders); + query.push_str("))"); + } + } + + async fn pg_insert_transfers_batch(&self, transfers: &[NftTransferData]) -> Result { + if transfers.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + + for transfer in transfers { + let token_blob = felt_to_blob(transfer.token); + let token_id_blob = u256_to_blob(transfer.token_id); + let from_blob = felt_to_blob(transfer.from); + let to_blob = felt_to_blob(transfer.to); + let tx_hash_blob = felt_to_blob(transfer.tx_hash); + let ts = transfer + .timestamp + .unwrap_or_else(|| chrono::Utc::now().timestamp()); + + let row = tx.query_opt( + "INSERT INTO erc721.nft_transfers (token, token_id, from_addr, to_addr, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (token, tx_hash, token_id, from_addr, to_addr) DO NOTHING + RETURNING id", + &[&token_blob, &token_id_blob, &from_blob, &to_blob, &(transfer.block_number as i64), &tx_hash_blob, &ts], + ).await?; + + if let Some(row) = row { + inserted += 1; + let transfer_id: i64 = row.get(0); + if transfer.to != Felt::ZERO { + tx.execute( + "INSERT INTO erc721.nft_ownership (token, token_id, owner, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6) + ON CONFLICT (token, token_id) DO UPDATE SET owner = EXCLUDED.owner, block_number = EXCLUDED.block_number, tx_hash = EXCLUDED.tx_hash, timestamp = EXCLUDED.timestamp", + &[&token_blob, &token_id_blob, &to_blob, &(transfer.block_number as i64), &tx_hash_blob, &ts], + ).await?; + } + + if transfer.from != Felt::ZERO + && transfer.to != Felt::ZERO + && transfer.from == transfer.to + { + tx.execute( + "INSERT INTO erc721.nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'both', $4)", + &[&from_blob, &token_blob, &transfer_id, &(transfer.block_number as i64)], + ).await?; + } else { + if transfer.from != Felt::ZERO { + tx.execute( + "INSERT INTO erc721.nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'sent', $4)", + &[&from_blob, &token_blob, &transfer_id, &(transfer.block_number as i64)], + ).await?; + } + if transfer.to != Felt::ZERO { + tx.execute( + "INSERT INTO erc721.nft_wallet_activity (wallet_address, token, transfer_id, direction, block_number) + VALUES ($1, $2, $3, 'received', $4)", + &[&to_blob, &token_blob, &transfer_id, &(transfer.block_number as i64)], + ).await?; + } + } + } + } + + tx.commit().await?; + Ok(inserted) + } + + async fn pg_insert_operator_approvals_batch( + &self, + approvals: &[OperatorApprovalData], + ) -> Result { + if approvals.is_empty() { + return Ok(0); + } + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + let mut inserted = 0usize; + for approval in approvals { + tx.execute( + "INSERT INTO erc721.nft_operators (token, owner, operator, approved, block_number, tx_hash, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ON CONFLICT (token, owner, operator) DO UPDATE SET approved = EXCLUDED.approved, block_number = EXCLUDED.block_number, tx_hash = EXCLUDED.tx_hash, timestamp = EXCLUDED.timestamp", + &[ + &felt_to_blob(approval.token), + &felt_to_blob(approval.owner), + &felt_to_blob(approval.operator), + &((approval.approved as i32) as i64), + &(approval.block_number as i64), + &felt_to_blob(approval.tx_hash), + &approval.timestamp.unwrap_or_else(|| chrono::Utc::now().timestamp()), + ], + ).await?; + inserted += 1; + } + tx.commit().await?; + Ok(inserted) + } + + #[allow(clippy::too_many_arguments)] + async fn pg_get_transfers_filtered( + &self, + wallet: Option, + from: Option, + to: Option, + tokens: &[Felt], + token_ids: &[U256], + block_from: Option, + block_to: Option, + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::new(); + let mut params: Vec> = Vec::new(); + + if let Some(wallet_addr) = wallet { + query.push_str( + "SELECT DISTINCT t.id, t.token, t.token_id, t.from_addr, t.to_addr, t.block_number, t.tx_hash, t.timestamp + FROM erc721.nft_wallet_activity wa + JOIN erc721.nft_transfers t ON wa.transfer_id = t.id + WHERE wa.wallet_address = ", + ); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(wallet_addr))); + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND wa.token IN ({list})")); + } + } else { + query.push_str( + "SELECT t.id, t.token, t.token_id, t.from_addr, t.to_addr, t.block_number, t.tx_hash, t.timestamp + FROM erc721.nft_transfers t + WHERE 1=1", + ); + if let Some(from_addr) = from { + query.push_str(" AND t.from_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(from_addr))); + } + if let Some(to_addr) = to { + query.push_str(" AND t.to_addr = "); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(to_addr))); + } + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND t.token IN ({list})")); + } + } + + if !token_ids.is_empty() { + let list = token_ids + .iter() + .map(|tid| Self::pg_next_param(&mut params, u256_to_blob(*tid))) + .collect::>() + .join(","); + query.push_str(&format!(" AND t.token_id IN ({list})")); + } + if let Some(block_min) = block_from { + query.push_str(" AND t.block_number >= "); + query.push_str(&Self::pg_next_param(&mut params, block_min as i64)); + } + if let Some(block_max) = block_to { + query.push_str(" AND t.block_number <= "); + query.push_str(&Self::pg_next_param(&mut params, block_max as i64)); + } + if let Some(c) = cursor { + let p1 = Self::pg_next_param(&mut params, c.block_number as i64); + let p2 = Self::pg_next_param(&mut params, c.block_number as i64); + let p3 = Self::pg_next_param(&mut params, c.id); + query.push_str(&format!( + " AND (t.block_number < {p1} OR (t.block_number = {p2} AND t.id < {p3}))" + )); + } + query.push_str(" ORDER BY t.block_number DESC, t.id DESC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, limit as i64)); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let transfers: Vec = rows + .into_iter() + .map(|row| NftTransferData { + id: Some(row.get::(0)), + token: blob_to_felt(&row.get::>(1)), + token_id: blob_to_u256(&row.get::>(2)), + from: blob_to_felt(&row.get::>(3)), + to: blob_to_felt(&row.get::>(4)), + block_number: row.get::(5) as u64, + tx_hash: blob_to_felt(&row.get::>(6)), + timestamp: Some(row.get::(7)), + }) + .collect(); + let next_cursor = if transfers.len() == limit as usize { + transfers.last().map(|t| TransferCursor { + block_number: t.block_number, + id: t.id.unwrap_or_default(), + }) + } else { + None + }; + Ok((transfers, next_cursor)) + } + + async fn pg_get_owner(&self, token: Felt, token_id: U256) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT owner FROM erc721.nft_ownership WHERE token = $1 AND token_id = $2", + &[&felt_to_blob(token), &u256_to_blob(token_id)], + ) + .await?; + Ok(row.map(|r| blob_to_felt(&r.get::>(0)))) + } + + async fn pg_get_ownership_by_owner( + &self, + owner: Felt, + tokens: &[Felt], + cursor: Option, + limit: u32, + ) -> Result<(Vec, Option)> { + let client = self.pg_client().await?; + let mut query = String::from( + "SELECT id, token, token_id, owner, block_number FROM erc721.nft_ownership WHERE owner = ", + ); + let mut params: Vec> = Vec::new(); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(owner))); + if !tokens.is_empty() { + let list = tokens + .iter() + .map(|token| Self::pg_next_param(&mut params, felt_to_blob(*token))) + .collect::>() + .join(","); + query.push_str(&format!(" AND token IN ({list})")); + } + if let Some(c) = cursor { + let p1 = Self::pg_next_param(&mut params, c.block_number as i64); + let p2 = Self::pg_next_param(&mut params, c.block_number as i64); + let p3 = Self::pg_next_param(&mut params, c.id); + query.push_str(&format!( + " AND (block_number < {p1} OR (block_number = {p2} AND id < {p3}))" + )); + } + query.push_str(" ORDER BY block_number DESC, id DESC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, limit as i64)); + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let ownership: Vec = rows + .into_iter() + .map(|row| NftOwnershipData { + id: Some(row.get::(0)), + token: blob_to_felt(&row.get::>(1)), + token_id: blob_to_u256(&row.get::>(2)), + owner: blob_to_felt(&row.get::>(3)), + block_number: row.get::(4) as u64, + }) + .collect(); + let next_cursor = if ownership.len() == limit as usize { + ownership.last().map(|o| OwnershipCursor { + block_number: o.block_number, + id: o.id.unwrap_or_default(), + }) + } else { + None + }; + Ok((ownership, next_cursor)) + } + + async fn pg_query_token_ids_by_attributes( + &self, + token: Felt, + filters: &[(String, Vec)], + cursor_token_id: Option, + page_fetch: i64, + include_facets: bool, + facet_limit: i64, + ) -> Result { + let client = self.pg_client().await?; + + let mut query = String::from("SELECT u.token_id FROM erc721.token_uris u WHERE u.token = "); + let mut params: Vec> = Vec::new(); + query.push_str(&Self::pg_next_param(&mut params, felt_to_blob(token))); + if let Some(cursor) = cursor_token_id { + query.push_str(" AND u.token_id > "); + query.push_str(&Self::pg_next_param(&mut params, u256_to_blob(cursor))); + } + Self::pg_append_attribute_exists_filters(&mut query, &mut params, filters, "u"); + query.push_str(" ORDER BY u.token_id ASC LIMIT "); + query.push_str(&Self::pg_next_param(&mut params, page_fetch)); + + let refs: Vec<&(dyn PgToSql + Sync)> = params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&query, &refs).await?; + let mut token_ids: Vec = rows + .into_iter() + .map(|row| blob_to_u256(&row.get::>(0))) + .collect(); + + let page_limit = (page_fetch - 1) as usize; + let next_cursor_token_id = if token_ids.len() > page_limit { + let next = token_ids[page_limit]; + token_ids.truncate(page_limit); + Some(next) + } else { + None + }; + + let mut count_query = + String::from("SELECT COUNT(*) FROM erc721.token_uris u WHERE u.token = "); + let mut count_params: Vec> = Vec::new(); + count_query.push_str(&Self::pg_next_param(&mut count_params, felt_to_blob(token))); + Self::pg_append_attribute_exists_filters(&mut count_query, &mut count_params, filters, "u"); + let count_refs: Vec<&(dyn PgToSql + Sync)> = count_params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let total_row = client.query_one(&count_query, &count_refs).await?; + let total_hits = total_row.get::(0) as u64; + + let facets = if include_facets { + let mut facet_query = String::from( + "SELECT a.key, a.value, COUNT(*) AS cnt + FROM erc721.token_attributes a + JOIN erc721.token_uris u ON u.token = a.token AND u.token_id = a.token_id + WHERE u.token = ", + ); + let mut facet_params: Vec> = Vec::new(); + facet_query.push_str(&Self::pg_next_param(&mut facet_params, felt_to_blob(token))); + Self::pg_append_attribute_exists_filters( + &mut facet_query, + &mut facet_params, + filters, + "u", + ); + facet_query.push_str( + " GROUP BY a.key, a.value + ORDER BY cnt DESC, a.key ASC, a.value ASC + LIMIT ", + ); + facet_query.push_str(&Self::pg_next_param(&mut facet_params, facet_limit)); + let facet_refs: Vec<&(dyn PgToSql + Sync)> = facet_params + .iter() + .map(|p| p.as_ref() as &(dyn PgToSql + Sync)) + .collect(); + let rows = client.query(&facet_query, &facet_refs).await?; + rows.into_iter() + .map(|row| AttributeFacetCount { + key: row.get(0), + value: row.get(1), + count: row.get::(2) as u64, + }) + .collect() + } else { + Vec::new() + }; + + Ok(TokenAttributeQueryResult { + token_ids, + next_cursor_token_id, + total_hits, + facets, + }) + } + + async fn pg_get_transfer_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(*) FROM erc721.nft_transfers", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_token_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(DISTINCT token) FROM erc721.nft_transfers", + &[], + ) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_nft_count(&self) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT COUNT(*) FROM erc721.nft_ownership", &[]) + .await?; + Ok(row.get::(0) as u64) + } + + async fn pg_get_latest_block(&self) -> Result> { + let client = self.pg_client().await?; + let row = client + .query_one("SELECT MAX(block_number) FROM erc721.nft_transfers", &[]) + .await?; + let v: Option = row.get(0); + Ok(v.map(|x| x as u64)) + } + + async fn pg_has_token_metadata(&self, token: Felt) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc721.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.get::(0) > 0) + } + + async fn pg_upsert_token_metadata( + &self, + token: Felt, + name: Option<&str>, + symbol: Option<&str>, + total_supply: Option, + ) -> Result<()> { + let client = self.pg_client().await?; + client.execute( + "INSERT INTO erc721.token_metadata (token, name, symbol, total_supply) + VALUES ($1, $2, $3, $4) + ON CONFLICT (token) DO UPDATE SET + name = COALESCE(EXCLUDED.name, erc721.token_metadata.name), + symbol = COALESCE(EXCLUDED.symbol, erc721.token_metadata.symbol), + total_supply = COALESCE(EXCLUDED.total_supply, erc721.token_metadata.total_supply)", + &[&felt_to_blob(token), &name, &symbol, &total_supply.map(u256_to_blob)], + ).await?; + Ok(()) + } + + async fn pg_get_token_metadata( + &self, + token: Felt, + ) -> Result, Option, Option)>> { + let client = self.pg_client().await?; + let row = client + .query_opt( + "SELECT name, symbol, total_supply FROM erc721.token_metadata WHERE token = $1", + &[&felt_to_blob(token)], + ) + .await?; + Ok(row.map(|r| { + let supply: Option> = r.get(2); + (r.get(0), r.get(1), supply.map(|b| blob_to_u256(&b))) + })) + } + + async fn pg_get_token_metadata_paginated( + &self, + cursor: Option, + limit: u32, + ) -> Result<( + Vec<(Felt, Option, Option, Option)>, + Option, + )> { + let client = self.pg_client().await?; + let fetch_limit = limit.clamp(1, 1000) as i64 + 1; + let rows = if let Some(cursor_token) = cursor { + client + .query( + "SELECT token, name, symbol, total_supply + FROM erc721.token_metadata + WHERE token > $1 + ORDER BY token ASC + LIMIT $2", + &[&felt_to_blob(cursor_token), &fetch_limit], + ) + .await? + } else { + client + .query( + "SELECT token, name, symbol, total_supply + FROM erc721.token_metadata + ORDER BY token ASC + LIMIT $1", + &[&fetch_limit], + ) + .await? + }; + let mut out: Vec<(Felt, Option, Option, Option)> = rows + .into_iter() + .map(|row| { + let supply: Option> = row.get(3); + ( + blob_to_felt(&row.get::>(0)), + row.get(1), + row.get(2), + supply.map(|b| blob_to_u256(&b)), + ) + }) + .collect(); + let capped = limit.clamp(1, 1000) as usize; + let next_cursor = if out.len() > capped { + let next = out[capped].0; + out.truncate(capped); + Some(next) + } else { + None + }; + Ok((out, next_cursor)) + } + + async fn pg_has_token_uri(&self, token: Felt, token_id: U256) -> Result { + let client = self.pg_client().await?; + let row = client + .query_one( + "SELECT COUNT(*) FROM erc721.token_uris WHERE token = $1 AND token_id = $2", + &[&felt_to_blob(token), &u256_to_blob(token_id)], + ) + .await?; + Ok(row.get::(0) > 0) + } + + async fn pg_get_token_uris_by_contract( + &self, + token: Felt, + ) -> Result, Option)>> { + let client = self.pg_client().await?; + let rows = client + .query( + "SELECT token_id, uri, metadata_json + FROM erc721.token_uris + WHERE token = $1 + ORDER BY token_id ASC", + &[&felt_to_blob(token)], + ) + .await?; + Ok(rows + .into_iter() + .map(|row| { + ( + blob_to_u256(&row.get::>(0)), + row.get(1), + row.get(2), + ) + }) + .collect()) + } } #[async_trait::async_trait] impl TokenUriStore for Erc721Storage { async fn store_token_uri(&self, result: &TokenUriResult) -> Result<()> { + if self.backend == StorageBackend::Postgres { + let mut client = self.pg_client().await?; + let tx = client.transaction().await?; + + let token_blob = felt_to_blob(result.contract); + let token_id_blob = u256_to_blob(result.token_id); + + tx.execute( + "INSERT INTO erc721.token_uris (token, token_id, uri, metadata_json, updated_at) + VALUES ($1, $2, $3, $4, EXTRACT(EPOCH FROM NOW())::BIGINT) + ON CONFLICT(token, token_id) DO UPDATE SET + uri = EXCLUDED.uri, + metadata_json = EXCLUDED.metadata_json, + updated_at = EXCLUDED.updated_at", + &[ + &token_blob, + &token_id_blob, + &result.uri.as_deref(), + &result.metadata_json.as_deref(), + ], + ) + .await?; + + tx.execute( + "DELETE FROM erc721.token_attributes WHERE token = $1 AND token_id = $2", + &[&token_blob, &token_id_blob], + ) + .await?; + + if let Some(metadata_json) = &result.metadata_json { + if let Ok(value) = serde_json::from_str::(metadata_json) { + if let Some(attrs) = value.get("attributes").and_then(|a| a.as_array()) { + for attr in attrs { + let key = attr + .get("trait_type") + .or_else(|| attr.get("key")) + .and_then(|v| v.as_str()); + let value = attr.get("value").and_then(|v| { + v.as_str().map(ToOwned::to_owned).or_else(|| { + if v.is_null() { + None + } else { + Some(v.to_string()) + } + }) + }); + + let key = key.and_then(sanitize_metadata_text); + let value = value.and_then(|v| sanitize_metadata_text(&v)); + + if let (Some(key), Some(value)) = (key, value) { + tx.execute( + "INSERT INTO erc721.token_attributes (token, token_id, key, value) + VALUES ($1, $2, $3, $4) + ON CONFLICT (token, token_id, key) DO UPDATE SET value = EXCLUDED.value", + &[&token_blob, &token_id_blob, &key, &value], + ).await?; + } + } + } + } + } + + tx.commit().await?; + return Ok(()); + } + let mut conn = self.conn.lock().unwrap(); let tx = conn.transaction()?; @@ -882,6 +1936,9 @@ impl TokenUriStore for Erc721Storage { }) }); + let key = key.and_then(sanitize_metadata_text); + let value = value.and_then(|v| sanitize_metadata_text(&v)); + if let (Some(key), Some(value)) = (key, value) { attr_stmt.execute(params![&token_blob, &token_id_blob, key, value])?; } @@ -894,3 +1951,12 @@ impl TokenUriStore for Erc721Storage { Ok(()) } } + +fn sanitize_metadata_text(input: &str) -> Option { + let sanitized = input.replace('\0', "").trim().to_owned(); + if sanitized.is_empty() { + None + } else { + Some(sanitized) + } +} diff --git a/crates/torii-sql-sink/Cargo.toml b/crates/torii-sql-sink/Cargo.toml index b96ac59..97443de 100644 --- a/crates/torii-sql-sink/Cargo.toml +++ b/crates/torii-sql-sink/Cargo.toml @@ -12,7 +12,7 @@ tokio = { version = "1.35", features = ["full"] } async-trait = "0.1" # Database -sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite"] } +sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "postgres", "any"] } # gRPC tonic = "0.12" diff --git a/crates/torii-sql-sink/README.md b/crates/torii-sql-sink/README.md index 04d8b70..1dac68e 100644 --- a/crates/torii-sql-sink/README.md +++ b/crates/torii-sql-sink/README.md @@ -1,6 +1,6 @@ # Torii SQL Sink -A demonstration sink for Torii that processes SQL operations and stores them in SQLite. +A demonstration sink for Torii that processes SQL operations and stores them in SQLite or PostgreSQL. ## Features @@ -27,7 +27,7 @@ use tonic::transport::Server; #[tokio::main] async fn main() -> Result<(), Box> { // 1. Create sink - let sql_sink = SqlSink::new("sqlite::memory:").await?; + let sql_sink = SqlSink::new("postgres://torii:torii@localhost:5432/torii").await?; // 2. Get the gRPC service implementation let sql_grpc_service = sql_sink.get_grpc_service_impl(); @@ -128,7 +128,7 @@ See `build.rs` for implementation details. ## Storage -- **SQLite Database**: Stores SQL operations (insert, update, etc.) +- **Database**: Stores SQL operations (insert, update, etc.) in SQLite or PostgreSQL. - **Schema**: ```sql CREATE TABLE sql_operation ( @@ -139,7 +139,7 @@ See `build.rs` for implementation details. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ``` -- **Thread-Safe**: Uses `Arc` for concurrent access +- **Thread-Safe**: Uses `Arc>` for concurrent access ## Filtering @@ -176,7 +176,7 @@ Due to Rust's type system limitations, gRPC services must be registered by the u use torii_sql_sink::proto::sql_sink_server::SqlSinkServer; use tonic::transport::Server; -let sql_sink = SqlSink::new("sqlite::memory:").await?; +let sql_sink = SqlSink::new("postgres://torii:torii@localhost:5432/torii").await?; let service = sql_sink.get_grpc_service_impl(); let grpc_router = Server::builder() diff --git a/crates/torii-sql-sink/src/api.rs b/crates/torii-sql-sink/src/api.rs index dbcebe3..4cf3882 100644 --- a/crates/torii-sql-sink/src/api.rs +++ b/crates/torii-sql-sink/src/api.rs @@ -5,13 +5,16 @@ use axum::{extract::State, http::StatusCode, response::Json}; use serde::{Deserialize, Serialize}; -use sqlx::{sqlite::SqlitePool, Column, Row}; +use sqlx::{Column, Row}; use std::sync::Arc; +use crate::DbBackend; + /// Shared state for SQL sink routes #[derive(Clone)] pub struct SqlSinkState { - pub pool: Arc, + pub(crate) pool: Arc>, + pub(crate) backend: DbBackend, } /// Request body for SQL query endpoint @@ -87,7 +90,14 @@ pub async fn sql_events_handler( ) -> Result, (StatusCode, String)> { tracing::info!(target: "torii::sinks::sql::api", "Fetching all SQL operations"); - let rows = sqlx::query("SELECT * FROM sql_operation ORDER BY created_at DESC LIMIT 100") + let query = match state.backend { + DbBackend::Sqlite => "SELECT * FROM sql_operation ORDER BY created_at DESC LIMIT 100", + DbBackend::Postgres => { + "SELECT * FROM sql_sink.sql_operation ORDER BY created_at DESC LIMIT 100" + } + }; + + let rows = sqlx::query(query) .fetch_all(state.pool.as_ref()) .await .map_err(|e| { diff --git a/crates/torii-sql-sink/src/grpc_service.rs b/crates/torii-sql-sink/src/grpc_service.rs index d445145..43e19f2 100644 --- a/crates/torii-sql-sink/src/grpc_service.rs +++ b/crates/torii-sql-sink/src/grpc_service.rs @@ -1,6 +1,6 @@ use async_trait::async_trait; use futures::stream::Stream; -use sqlx::sqlite::{SqlitePool, SqliteRow}; +use sqlx::any::AnyRow; use sqlx::{Column, Row}; use std::pin::Pin; use std::sync::Arc; @@ -11,23 +11,26 @@ use crate::proto::{ sql_sink_server::SqlSink as SqlSinkTrait, GetSchemaRequest, GetSchemaResponse, QueryRequest, QueryResponse, QueryRow, SqlOperation, SqlOperationUpdate, SqlSubscribeRequest, TableSchema, }; +use crate::DbBackend; /// gRPC service implementation for SqlSink #[derive(Clone)] pub struct SqlSinkService { - pool: Arc, + pool: Arc>, + backend: DbBackend, /// Broadcast channel for real-time SQL operation updates pub update_tx: broadcast::Sender, } impl SqlSinkService { /// Creates a new SqlSinkService. - pub fn new(pool: Arc) -> Self { + pub(crate) fn new(pool: Arc>, backend: DbBackend) -> Self { // Create broadcast channel with capacity for 1000 pending updates let (tx, _rx) = broadcast::channel(1000); Self { pool, + backend, update_tx: tx, } } @@ -43,8 +46,8 @@ impl SqlSinkService { let _ = self.update_tx.send(update); } - /// Helper to convert a SQLite row to a QueryRow proto message. - fn row_to_proto(row: &SqliteRow) -> Result { + /// Helper to convert a row to a QueryRow proto message. + fn row_to_proto(row: &AnyRow) -> QueryRow { let mut columns = std::collections::HashMap::new(); for (idx, col) in row.columns().iter().enumerate() { @@ -67,7 +70,7 @@ impl SqlSinkService { columns.insert(col_name, value); } - Ok(QueryRow { columns }) + QueryRow { columns } } } @@ -94,10 +97,7 @@ impl SqlSinkTrait for SqlSinkService { .await .map_err(|e| Status::invalid_argument(format!("Query failed: {e}")))?; - let proto_rows: Vec = rows - .iter() - .map(Self::row_to_proto) - .collect::, _>>()?; + let proto_rows: Vec = rows.iter().map(Self::row_to_proto).collect(); let total_rows = proto_rows.len() as i32; @@ -149,7 +149,7 @@ impl SqlSinkTrait for SqlSinkService { Status::internal(format!("Stream error: {e}")) })? { row_count += 1; - let proto_row = SqlSinkService::row_to_proto(&row)?; + let proto_row = SqlSinkService::row_to_proto(&row); tracing::debug!( target: "torii::sql_sink::grpc", "Yielding row {}: {:?}", @@ -182,46 +182,100 @@ impl SqlSinkTrait for SqlSinkService { req.table_name ); - let table_query = if let Some(table_name) = req.table_name { - format!("SELECT name FROM sqlite_master WHERE type='table' AND name='{table_name}'") - } else { - "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'" - .to_string() - }; - - let table_rows = sqlx::query(&table_query) - .fetch_all(self.pool.as_ref()) - .await - .map_err(|e| Status::internal(format!("Failed to fetch tables: {e}")))?; - let mut tables = Vec::new(); - for table_row in table_rows { - let table_name: String = table_row - .try_get(0) - .map_err(|e| Status::internal(format!("Failed to read table name: {e}")))?; - - let column_query = format!("PRAGMA table_info({table_name})"); - let column_rows = sqlx::query(&column_query) - .fetch_all(self.pool.as_ref()) - .await - .map_err(|e| Status::internal(format!("Failed to fetch columns: {e}")))?; - - let mut columns = std::collections::HashMap::new(); - for col_row in column_rows { - let col_name: String = col_row - .try_get(1) - .map_err(|e| Status::internal(format!("Failed to read column name: {e}")))?; - let col_type: String = col_row - .try_get(2) - .map_err(|e| Status::internal(format!("Failed to read column type: {e}")))?; - columns.insert(col_name, col_type); + match self.backend { + DbBackend::Sqlite => { + let table_query = if let Some(table_name) = req.table_name { + format!( + "SELECT name FROM sqlite_master WHERE type='table' AND name='{table_name}'" + ) + } else { + "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'" + .to_string() + }; + + let table_rows = sqlx::query(&table_query) + .fetch_all(self.pool.as_ref()) + .await + .map_err(|e| Status::internal(format!("Failed to fetch tables: {e}")))?; + + for table_row in table_rows { + let table_name: String = table_row + .try_get(0) + .map_err(|e| Status::internal(format!("Failed to read table name: {e}")))?; + + let column_query = format!("PRAGMA table_info({table_name})"); + let column_rows = sqlx::query(&column_query) + .fetch_all(self.pool.as_ref()) + .await + .map_err(|e| Status::internal(format!("Failed to fetch columns: {e}")))?; + + let mut columns = std::collections::HashMap::new(); + for col_row in column_rows { + let col_name: String = col_row.try_get(1).map_err(|e| { + Status::internal(format!("Failed to read column name: {e}")) + })?; + let col_type: String = col_row.try_get(2).map_err(|e| { + Status::internal(format!("Failed to read column type: {e}")) + })?; + columns.insert(col_name, col_type); + } + + tables.push(TableSchema { + name: table_name, + columns, + }); + } } + DbBackend::Postgres => { + let table_rows = if let Some(table_name) = req.table_name { + sqlx::query( + "SELECT table_name FROM information_schema.tables WHERE table_schema = 'sql_sink' AND table_name = $1", + ) + .bind(table_name) + .fetch_all(self.pool.as_ref()) + .await + .map_err(|e| Status::internal(format!("Failed to fetch tables: {e}")))? + } else { + sqlx::query( + "SELECT table_name FROM information_schema.tables WHERE table_schema = 'sql_sink' ORDER BY table_name", + ) + .fetch_all(self.pool.as_ref()) + .await + .map_err(|e| Status::internal(format!("Failed to fetch tables: {e}")))? + }; + + for table_row in table_rows { + let table_name: String = table_row + .try_get(0) + .map_err(|e| Status::internal(format!("Failed to read table name: {e}")))?; + + let column_rows = sqlx::query( + "SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'sql_sink' AND table_name = $1 ORDER BY ordinal_position", + ) + .bind(&table_name) + .fetch_all(self.pool.as_ref()) + .await + .map_err(|e| Status::internal(format!("Failed to fetch columns: {e}")))?; + + let mut columns = std::collections::HashMap::new(); + for col_row in column_rows { + let col_name: String = col_row.try_get(0).map_err(|e| { + Status::internal(format!("Failed to read column name: {e}")) + })?; + let col_type: String = col_row.try_get(1).map_err(|e| { + Status::internal(format!("Failed to read column type: {e}")) + })?; + columns.insert(col_name, col_type); + } - tables.push(TableSchema { - name: table_name, - columns, - }); + tables.push(TableSchema { + name: table_name, + columns, + }); + } + } } tracing::info!( diff --git a/crates/torii-sql-sink/src/lib.rs b/crates/torii-sql-sink/src/lib.rs index 32b3bce..3273982 100644 --- a/crates/torii-sql-sink/src/lib.rs +++ b/crates/torii-sql-sink/src/lib.rs @@ -17,8 +17,8 @@ use axum::{ Router, }; use prost::Message; -use prost_types::Any; -use sqlx::sqlite::SqlitePool; +use prost_types::Any as ProtoAny; +use sqlx::{any::AnyPoolOptions, Any as SqlxAny, QueryBuilder}; use std::sync::Arc; use starknet::core::types::EmittedEvent; @@ -33,14 +33,21 @@ pub use decoder::{SqlDecoder, SqlInsert, SqlUpdate}; pub use grpc_service::SqlSinkService; pub use proto::{SqlOperation as ProtoSqlOperation, SqlOperationUpdate}; -/// SqlSink stores data in SQLite and exposes SQL query endpoints. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(crate) enum DbBackend { + Sqlite, + Postgres, +} + +/// SqlSink stores data in SQL databases and exposes SQL query endpoints. /// /// This sink demonstrates all three extension points: /// 1. **EventBus**: Publishes to central topic-based subscriptions /// 2. **gRPC Service**: Provides Query, StreamQuery, GetSchema, and Subscribe RPCs /// 3. **REST HTTP**: Exposes `/sql/query` and `/sql/events` endpoints pub struct SqlSink { - pool: Arc, + pool: Arc>, + backend: DbBackend, event_bus: Option>, /// Internal gRPC service (self-contained with broadcast channel) grpc_service: Arc, @@ -81,27 +88,69 @@ impl SqlSink { self.grpc_service.clone() } + fn table_name(&self) -> &'static str { + match self.backend { + DbBackend::Sqlite => "sql_operation", + DbBackend::Postgres => "sql_sink.sql_operation", + } + } + pub async fn new(database_url: &str) -> anyhow::Result { - let pool = SqlitePool::connect(database_url).await?; + sqlx::any::install_default_drivers(); + + let backend = if database_url.starts_with("postgres://") + || database_url.starts_with("postgresql://") + { + DbBackend::Postgres + } else { + DbBackend::Sqlite + }; + + let db_url = if backend == DbBackend::Sqlite && database_url == ":memory:" { + "sqlite::memory:".to_string() + } else { + database_url.to_string() + }; + + let pool = AnyPoolOptions::new().connect(&db_url).await?; let pool = Arc::new(pool); + if backend == DbBackend::Postgres { + sqlx::query("CREATE SCHEMA IF NOT EXISTS sql_sink") + .execute(pool.as_ref()) + .await?; + } + + let create_table_sql = match backend { + DbBackend::Sqlite => { + r" + CREATE TABLE IF NOT EXISTS sql_operation ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + table_name TEXT NOT NULL, + operation TEXT NOT NULL, + value INTEGER NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + " + } + DbBackend::Postgres => { + r" + CREATE TABLE IF NOT EXISTS sql_sink.sql_operation ( + id BIGSERIAL PRIMARY KEY, + table_name TEXT NOT NULL, + operation TEXT NOT NULL, + value BIGINT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + " + } + }; + // Create tables for SQL operations - sqlx::query( - r" - CREATE TABLE IF NOT EXISTS sql_operation ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - table_name TEXT NOT NULL, - operation TEXT NOT NULL, - value INTEGER NOT NULL, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP - ) - ", - ) - .execute(pool.as_ref()) - .await?; + sqlx::query(create_table_sql).execute(pool.as_ref()).await?; // Create gRPC service internally (with its own broadcast channel) - let grpc_service = Arc::new(SqlSinkService::new(pool.clone())); + let grpc_service = Arc::new(SqlSinkService::new(pool.clone(), backend)); tracing::info!( target: "torii::sinks::sql", @@ -111,6 +160,7 @@ impl SqlSink { Ok(Self { pool, + backend, event_bus: None, grpc_service, }) @@ -208,17 +258,17 @@ impl Sink for SqlSink { for envelope in envelopes { if envelope.type_id == TypeId::new("sql.insert") { if let Some(insert) = envelope.downcast_ref::() { - sqlx::query( - r" - INSERT INTO sql_operation (table_name, operation, value) - VALUES (?, ?, ?) - ", - ) - .bind(&insert.table) - .bind("insert") - .bind(insert.value as i64) - .execute(self.pool.as_ref()) - .await?; + let mut qb = QueryBuilder::::new(format!( + "INSERT INTO {} (table_name, operation, value) ", + self.table_name() + )); + qb.push_values( + std::iter::once((&insert.table, "insert", insert.value as i64)), + |mut b, row| { + b.push_bind(row.0).push_bind(row.1).push_bind(row.2); + }, + ); + qb.build().execute(self.pool.as_ref()).await?; tracing::info!( target: "torii::sinks::sql", @@ -237,7 +287,7 @@ impl Sink for SqlSink { if let Some(event_bus) = &self.event_bus { let mut buf = Vec::new(); proto_msg.encode(&mut buf)?; - let any = Any { + let any = ProtoAny { type_url: "type.googleapis.com/torii.sinks.sql.SqlOperation" .to_string(), value: buf, @@ -262,17 +312,17 @@ impl Sink for SqlSink { } } else if envelope.type_id == TypeId::new("sql.update") { if let Some(update) = envelope.downcast_ref::() { - sqlx::query( - r" - INSERT INTO sql_operation (table_name, operation, value) - VALUES (?, ?, ?) - ", - ) - .bind(&update.table) - .bind("update") - .bind(update.value as i64) - .execute(self.pool.as_ref()) - .await?; + let mut qb = QueryBuilder::::new(format!( + "INSERT INTO {} (table_name, operation, value) ", + self.table_name() + )); + qb.push_values( + std::iter::once((&update.table, "update", update.value as i64)), + |mut b, row| { + b.push_bind(row.0).push_bind(row.1).push_bind(row.2); + }, + ); + qb.build().execute(self.pool.as_ref()).await?; tracing::info!( target: "torii::sinks::sql", @@ -291,7 +341,7 @@ impl Sink for SqlSink { if let Some(event_bus) = &self.event_bus { let mut buf = Vec::new(); proto_msg.encode(&mut buf)?; - let any = Any { + let any = ProtoAny { type_url: "type.googleapis.com/torii.sinks.sql.SqlOperation" .to_string(), value: buf, @@ -339,6 +389,7 @@ impl Sink for SqlSink { fn build_routes(&self) -> Router { let state = api::SqlSinkState { pool: self.pool.clone(), + backend: self.backend, }; Router::new() diff --git a/examples/multi_sink_example/main.rs b/examples/multi_sink_example/main.rs index e6f0c2e..7b632f0 100644 --- a/examples/multi_sink_example/main.rs +++ b/examples/multi_sink_example/main.rs @@ -27,10 +27,12 @@ async fn main() -> Result<(), Box> { println!("📦 Creating sinks..."); - // Create SQL sink (in-memory SQLite) - let sql_sink = SqlSink::new("sqlite::memory:").await?; + // Create SQL sink (DATABASE_URL or in-memory SQLite fallback) + let database_url = + std::env::var("DATABASE_URL").unwrap_or_else(|_| "sqlite::memory:".to_string()); + let sql_sink = SqlSink::new(&database_url).await?; let sql_grpc_service = sql_sink.get_grpc_service_impl(); - println!(" ✅ SqlSink created (in-memory SQLite)"); + println!(" ✅ SqlSink created ({database_url})"); // Create Log sink (in-memory, max 100 logs) let log_sink = LogSink::new(100); diff --git a/examples/simple_sql_sink/main.rs b/examples/simple_sql_sink/main.rs index 38362a4..47040ef 100644 --- a/examples/simple_sql_sink/main.rs +++ b/examples/simple_sql_sink/main.rs @@ -18,7 +18,9 @@ async fn main() -> Result<(), Box> { println!("Torii SQL Sink Example - Starting Server...\n"); // 1. Create sink - let sql_sink = SqlSink::new("sqlite::memory:").await?; + let database_url = + std::env::var("DATABASE_URL").unwrap_or_else(|_| "sqlite::memory:".to_string()); + let sql_sink = SqlSink::new(&database_url).await?; // 2. Get the gRPC service implementation let sql_grpc_service = sql_sink.get_grpc_service_impl(); diff --git a/examples/test_block_extractor/main.rs b/examples/test_block_extractor/main.rs index ae606ee..34050e2 100644 --- a/examples/test_block_extractor/main.rs +++ b/examples/test_block_extractor/main.rs @@ -41,6 +41,7 @@ async fn main() -> Result<()> { from_block, to_block: Some(to_block), batch_size: 5, + max_inflight_batches: 1, retry_policy: RetryPolicy::default(), }; diff --git a/sql/engine_schema_postgres.sql b/sql/engine_schema_postgres.sql new file mode 100644 index 0000000..996cc07 --- /dev/null +++ b/sql/engine_schema_postgres.sql @@ -0,0 +1,43 @@ +-- Torii Engine Database Schema for PostgreSQL + +CREATE SCHEMA IF NOT EXISTS engine; + +CREATE TABLE IF NOT EXISTS engine.head ( + id TEXT PRIMARY KEY, + block_number BIGINT NOT NULL, + event_count BIGINT NOT NULL DEFAULT 0 +); + +CREATE TABLE IF NOT EXISTS engine.stats ( + key TEXT PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS engine.extractor_state ( + id BIGSERIAL PRIMARY KEY, + extractor_type TEXT NOT NULL, + state_key TEXT NOT NULL, + state_value TEXT NOT NULL, + updated_at BIGINT NOT NULL DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT), + UNIQUE(extractor_type, state_key) +); + +CREATE TABLE IF NOT EXISTS engine.contract_decoders ( + contract_address TEXT PRIMARY KEY, + decoder_ids TEXT NOT NULL, + identified_at BIGINT NOT NULL DEFAULT (EXTRACT(EPOCH FROM NOW())::BIGINT) +); + +CREATE TABLE IF NOT EXISTS engine.block_timestamps ( + block_number BIGINT PRIMARY KEY, + timestamp BIGINT NOT NULL, + block_hash BYTEA +); + +INSERT INTO engine.head (id, block_number, event_count) +VALUES ('main', 0, 0) +ON CONFLICT (id) DO NOTHING; + +INSERT INTO engine.stats (key, value) +VALUES ('start_time', (EXTRACT(EPOCH FROM NOW())::BIGINT)::TEXT) +ON CONFLICT (key) DO NOTHING; diff --git a/src/etl/decoder/context.rs b/src/etl/decoder/context.rs index c56d0e1..5da6989 100644 --- a/src/etl/decoder/context.rs +++ b/src/etl/decoder/context.rs @@ -236,7 +236,7 @@ impl DecoderContext { } } } else { - tracing::warn!( + tracing::trace!( target: "torii::etl::decoder_context", "Decoder ID {:?} not found for contract {:#x}", decoder_id, @@ -309,6 +309,29 @@ impl Decoder for DecoderContext { // Contract was identified but no decoders match - skip silently return Ok(Vec::new()); } + + // Registry cache can contain stale decoder IDs after decoder-ID scheme changes + // or upgrades. If so, evict and fall back to all decoders for this event. + let invalid_ids: Vec = decoder_ids + .iter() + .copied() + .filter(|id| !self.decoders.contains_key(id)) + .collect(); + if !invalid_ids.is_empty() { + drop(cache); + { + let mut cache = self.registry_cache.write().await; + cache.remove(&event.from_address); + } + tracing::debug!( + target: "torii::etl::decoder_context", + contract = %format!("{:#x}", event.from_address), + invalid_decoder_ids = ?invalid_ids, + "Evicted stale decoder mapping from registry cache; falling back to all decoders" + ); + return self.decode_with_all_decoders(event).await; + } + // Clone to release lock before async decode let decoder_ids = decoder_ids.clone(); drop(cache); diff --git a/src/etl/engine_db.rs b/src/etl/engine_db.rs index db2ca4d..aebce26 100644 --- a/src/etl/engine_db.rs +++ b/src/etl/engine_db.rs @@ -4,18 +4,15 @@ //! This will be enhanced with actual Torii features in the future. use anyhow::{Context, Result}; -use sqlx::{ - sqlite::{SqliteConnectOptions, SqlitePoolOptions}, - Pool, QueryBuilder, Row, Sqlite, -}; +use sqlx::{any::AnyPoolOptions, Any, Pool, QueryBuilder, Row}; use starknet::core::types::Felt; use std::path::Path; -use std::str::FromStr; use crate::etl::decoder::DecoderId; -/// Embedded SQL schema -const SCHEMA_SQL: &str = include_str!("../../sql/engine_schema.sql"); +/// Embedded SQL schemas +const SQLITE_SCHEMA_SQL: &str = include_str!("../../sql/engine_schema.sql"); +const POSTGRES_SCHEMA_SQL: &str = include_str!("../../sql/engine_schema_postgres.sql"); /// Engine database configuration #[derive(Debug, Clone)] @@ -23,39 +20,69 @@ pub struct EngineDbConfig { pub path: String, } +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum DbBackend { + Sqlite, + Postgres, +} + /// Engine database for tracking state pub struct EngineDb { - pool: Pool, + pool: Pool, + backend: DbBackend, } impl EngineDb { /// Create a new engine database pub async fn new(config: EngineDbConfig) -> Result { - // Handle special case for in-memory database - let is_memory = config.path == ":memory:" || config.path == "sqlite::memory:"; - - // Ensure parent directory exists (skip for in-memory) - if !is_memory { - if let Some(parent) = Path::new(&config.path).parent() { - tokio::fs::create_dir_all(parent) - .await - .context(format!("Failed to create directory: {}", parent.display()))?; + sqlx::any::install_default_drivers(); + + let backend = + if config.path.starts_with("postgres://") || config.path.starts_with("postgresql://") { + DbBackend::Postgres + } else { + DbBackend::Sqlite + }; + + // Ensure parent directory exists for sqlite file databases. + if backend == DbBackend::Sqlite { + let is_memory = config.path == ":memory:" || config.path == "sqlite::memory:"; + let is_url = config.path.starts_with("sqlite:"); + if !is_memory && !is_url { + if let Some(parent) = Path::new(&config.path).parent() { + tokio::fs::create_dir_all(parent) + .await + .context(format!("Failed to create directory: {}", parent.display()))?; + } } } - tracing::debug!(target: "torii::etl::engine_db", "Connecting to database: {}", config.path); + let database_url = match backend { + DbBackend::Postgres => config.path.clone(), + DbBackend::Sqlite => { + if config.path == ":memory:" || config.path == "sqlite::memory:" { + "sqlite::memory:".to_string() + } else if config.path.starts_with("sqlite:") { + config.path.clone() + } else { + format!("sqlite://{}", config.path) + } + } + }; - // Create SQLite connection options - let opts = SqliteConnectOptions::from_str(&config.path)?.create_if_missing(true); + tracing::debug!( + target: "torii::etl::engine_db", + "Connecting to database: {}", + database_url + ); - // Create connection pool - let pool = SqlitePoolOptions::new() + let pool = AnyPoolOptions::new() .max_connections(5) - .connect_with(opts) + .connect(&database_url) .await .context("Failed to connect to engine database")?; - let db = Self { pool }; + let db = Self { pool, backend }; // Initialize schema db.init_schema().await?; @@ -63,9 +90,20 @@ impl EngineDb { Ok(db) } - /// Initialize database with PRAGMAs and schema + fn sql<'a>(&self, sqlite: &'a str, postgres: &'a str) -> &'a str { + match self.backend { + DbBackend::Sqlite => sqlite, + DbBackend::Postgres => postgres, + } + } + + fn table<'a>(&self, sqlite: &'a str, postgres: &'a str) -> &'a str { + self.sql(sqlite, postgres) + } + + /// Initialize database with backend tuning and schema async fn init_schema(&self) -> Result<()> { - // Apply PRAGMAs for performance + // Apply SQLite-only tuning. self.apply_pragmas().await?; // Load tables from SQL file @@ -78,6 +116,10 @@ impl EngineDb { /// Apply SQLite PRAGMAs for performance async fn apply_pragmas(&self) -> Result<()> { + if self.backend != DbBackend::Sqlite { + return Ok(()); + } + sqlx::query("PRAGMA journal_mode=WAL") .execute(&self.pool) .await?; @@ -97,7 +139,12 @@ impl EngineDb { /// Load schema from SQL file async fn load_schema_from_sql(&self) -> Result<()> { - for statement in SCHEMA_SQL.split(';') { + let schema_sql = match self.backend { + DbBackend::Sqlite => SQLITE_SCHEMA_SQL, + DbBackend::Postgres => POSTGRES_SCHEMA_SQL, + }; + + for statement in schema_sql.split(';') { let statement = statement.trim(); // Skip empty statements @@ -141,9 +188,12 @@ impl EngineDb { /// Get the current head (block number and event count) pub async fn get_head(&self) -> Result<(u64, u64)> { - let row = sqlx::query("SELECT block_number, event_count FROM head WHERE id = 'main'") - .fetch_one(&self.pool) - .await?; + let table = self.table("head", "engine.head"); + let row = sqlx::query(&format!( + "SELECT block_number, event_count FROM {table} WHERE id = 'main'" + )) + .fetch_one(&self.pool) + .await?; let block_number: i64 = row.get(0); let event_count: i64 = row.get(1); @@ -153,20 +203,34 @@ impl EngineDb { /// Update the head (increment block and event count) pub async fn update_head(&self, block_number: u64, events_processed: u64) -> Result<()> { - sqlx::query( - "UPDATE head SET block_number = ?, event_count = event_count + ? WHERE id = 'main'", - ) - .bind(block_number as i64) - .bind(events_processed as i64) - .execute(&self.pool) - .await?; + let table = self.table("head", "engine.head"); + let sql = match self.backend { + DbBackend::Sqlite => { + format!("UPDATE {table} SET block_number = ?, event_count = event_count + ? WHERE id = 'main'") + } + DbBackend::Postgres => { + format!("UPDATE {table} SET block_number = $1, event_count = event_count + $2 WHERE id = 'main'") + } + }; + + sqlx::query(&sql) + .bind(block_number as i64) + .bind(events_processed as i64) + .execute(&self.pool) + .await?; Ok(()) } /// Get a stat value pub async fn get_stat(&self, key: &str) -> Result> { - let row = sqlx::query("SELECT value FROM stats WHERE key = ?") + let table = self.table("stats", "engine.stats"); + let sql = match self.backend { + DbBackend::Sqlite => format!("SELECT value FROM {table} WHERE key = ?"), + DbBackend::Postgres => format!("SELECT value FROM {table} WHERE key = $1"), + }; + + let row = sqlx::query(&sql) .bind(key) .fetch_optional(&self.pool) .await?; @@ -176,7 +240,19 @@ impl EngineDb { /// Set a stat value pub async fn set_stat(&self, key: &str, value: &str) -> Result<()> { - sqlx::query("INSERT OR REPLACE INTO stats (key, value) VALUES (?, ?)") + let table = self.table("stats", "engine.stats"); + let sql = match self.backend { + DbBackend::Sqlite => { + format!("INSERT OR REPLACE INTO {table} (key, value) VALUES (?, ?)") + } + DbBackend::Postgres => { + format!( + "INSERT INTO {table} (key, value) VALUES ($1, $2) ON CONFLICT(key) DO UPDATE SET value = EXCLUDED.value" + ) + } + }; + + sqlx::query(&sql) .bind(key) .bind(value) .execute(&self.pool) @@ -210,13 +286,25 @@ impl EngineDb { extractor_type: &str, state_key: &str, ) -> Result> { - let row = sqlx::query( - "SELECT state_value FROM extractor_state WHERE extractor_type = ? AND state_key = ?", - ) - .bind(extractor_type) - .bind(state_key) - .fetch_optional(&self.pool) - .await?; + let table = self.table("extractor_state", "engine.extractor_state"); + let sql = match self.backend { + DbBackend::Sqlite => { + format!( + "SELECT state_value FROM {table} WHERE extractor_type = ? AND state_key = ?" + ) + } + DbBackend::Postgres => { + format!( + "SELECT state_value FROM {table} WHERE extractor_type = $1 AND state_key = $2" + ) + } + }; + + let row = sqlx::query(&sql) + .bind(extractor_type) + .bind(state_key) + .fetch_optional(&self.pool) + .await?; Ok(row.map(|r| r.get(0))) } @@ -233,19 +321,29 @@ impl EngineDb { state_key: &str, state_value: &str, ) -> Result<()> { - sqlx::query( - r" - INSERT INTO extractor_state (extractor_type, state_key, state_value, updated_at) - VALUES (?, ?, ?, strftime('%s', 'now')) - ON CONFLICT(extractor_type, state_key) - DO UPDATE SET state_value = excluded.state_value, updated_at = strftime('%s', 'now') - ", - ) - .bind(extractor_type) - .bind(state_key) - .bind(state_value) - .execute(&self.pool) - .await?; + let table = self.table("extractor_state", "engine.extractor_state"); + + let sql = match self.backend { + DbBackend::Sqlite => format!( + "INSERT INTO {table} (extractor_type, state_key, state_value, updated_at) \ + VALUES (?, ?, ?, strftime('%s', 'now')) \ + ON CONFLICT(extractor_type, state_key) \ + DO UPDATE SET state_value = excluded.state_value, updated_at = strftime('%s', 'now')" + ), + DbBackend::Postgres => format!( + "INSERT INTO {table} (extractor_type, state_key, state_value, updated_at) \ + VALUES ($1, $2, $3, EXTRACT(EPOCH FROM NOW())::BIGINT) \ + ON CONFLICT(extractor_type, state_key) \ + DO UPDATE SET state_value = EXCLUDED.state_value, updated_at = EXTRACT(EPOCH FROM NOW())::BIGINT" + ), + }; + + sqlx::query(&sql) + .bind(extractor_type) + .bind(state_key) + .bind(state_value) + .execute(&self.pool) + .await?; Ok(()) } @@ -260,7 +358,17 @@ impl EngineDb { extractor_type: &str, state_key: &str, ) -> Result<()> { - sqlx::query("DELETE FROM extractor_state WHERE extractor_type = ? AND state_key = ?") + let table = self.table("extractor_state", "engine.extractor_state"); + let sql = match self.backend { + DbBackend::Sqlite => { + format!("DELETE FROM {table} WHERE extractor_type = ? AND state_key = ?") + } + DbBackend::Postgres => { + format!("DELETE FROM {table} WHERE extractor_type = $1 AND state_key = $2") + } + }; + + sqlx::query(&sql) .bind(extractor_type) .bind(state_key) .execute(&self.pool) @@ -284,19 +392,18 @@ impl EngineDb { return Ok(std::collections::HashMap::new()); } - // Build query with IN clause - let placeholders: Vec = block_numbers.iter().map(|_| "?".to_string()).collect(); - let query = format!( - "SELECT block_number, timestamp FROM block_timestamps WHERE block_number IN ({})", - placeholders.join(", ") - ); + let table = self.table("block_timestamps", "engine.block_timestamps"); - let mut query_builder = sqlx::query(&query); + let mut query_builder = QueryBuilder::::new(&format!( + "SELECT block_number, timestamp FROM {table} WHERE block_number IN (" + )); + let mut separated = query_builder.separated(", "); for block_num in block_numbers { - query_builder = query_builder.bind(*block_num as i64); + separated.push_bind(*block_num as i64); } + separated.push_unseparated(")"); - let rows = query_builder.fetch_all(&self.pool).await?; + let rows = query_builder.build().fetch_all(&self.pool).await?; let mut result = std::collections::HashMap::with_capacity(rows.len()); for row in rows { @@ -324,17 +431,28 @@ impl EngineDb { let mut tx = self.pool.begin().await?; - // Use chunked multi-row INSERT OR IGNORE to reduce round-trips. + let table = self.table("block_timestamps", "engine.block_timestamps"); + + // Use chunked multi-row insert to reduce round-trips. let timestamp_items: Vec<(u64, u64)> = timestamps.iter().map(|(k, v)| (*k, *v)).collect(); for chunk in timestamp_items.chunks(CHUNK_SIZE) { - let mut query_builder = QueryBuilder::::new( - "INSERT OR IGNORE INTO block_timestamps (block_number, timestamp) ", - ); + let mut query_builder = QueryBuilder::::new(match self.backend { + DbBackend::Sqlite => { + format!("INSERT OR IGNORE INTO {table} (block_number, timestamp) ") + } + DbBackend::Postgres => { + format!("INSERT INTO {table} (block_number, timestamp) ") + } + }); query_builder.push_values(chunk, |mut b, (block_number, timestamp)| { b.push_bind(*block_number as i64) .push_bind(*timestamp as i64); }); + if self.backend == DbBackend::Postgres { + query_builder.push(" ON CONFLICT (block_number) DO NOTHING"); + } + query_builder.build().execute(&mut *tx).await?; } @@ -351,11 +469,18 @@ impl EngineDb { /// # Returns /// Timestamp if found in cache, None otherwise pub async fn get_block_timestamp(&self, block_number: u64) -> Result> { - let timestamp: Option = - sqlx::query_scalar("SELECT timestamp FROM block_timestamps WHERE block_number = ?") - .bind(block_number as i64) - .fetch_optional(&self.pool) - .await?; + let table = self.table("block_timestamps", "engine.block_timestamps"); + let sql = match self.backend { + DbBackend::Sqlite => format!("SELECT timestamp FROM {table} WHERE block_number = ?"), + DbBackend::Postgres => { + format!("SELECT timestamp FROM {table} WHERE block_number = $1") + } + }; + + let timestamp: Option = sqlx::query_scalar(&sql) + .bind(block_number as i64) + .fetch_optional(&self.pool) + .await?; Ok(timestamp.map(|ts| ts as u64)) } @@ -367,9 +492,10 @@ impl EngineDb { /// # Returns /// Vector of (contract_address, decoder_ids, identified_at_timestamp) pub async fn get_all_contract_decoders(&self) -> Result, i64)>> { - let rows = sqlx::query( - "SELECT contract_address, decoder_ids, identified_at FROM contract_decoders", - ) + let table = self.table("contract_decoders", "engine.contract_decoders"); + let rows = sqlx::query(&format!( + "SELECT contract_address, decoder_ids, identified_at FROM {table}" + )) .fetch_all(&self.pool) .await?; @@ -417,18 +543,28 @@ impl EngineDb { .collect::>() .join(","); - sqlx::query( - r" - INSERT INTO contract_decoders (contract_address, decoder_ids, identified_at) - VALUES (?, ?, strftime('%s', 'now')) - ON CONFLICT(contract_address) - DO UPDATE SET decoder_ids = excluded.decoder_ids, identified_at = strftime('%s', 'now') - ", - ) - .bind(&addr_hex) - .bind(&decoder_ids_str) - .execute(&self.pool) - .await?; + let table = self.table("contract_decoders", "engine.contract_decoders"); + + let sql = match self.backend { + DbBackend::Sqlite => format!( + "INSERT INTO {table} (contract_address, decoder_ids, identified_at) \ + VALUES (?, ?, strftime('%s', 'now')) \ + ON CONFLICT(contract_address) \ + DO UPDATE SET decoder_ids = excluded.decoder_ids, identified_at = strftime('%s', 'now')" + ), + DbBackend::Postgres => format!( + "INSERT INTO {table} (contract_address, decoder_ids, identified_at) \ + VALUES ($1, $2, EXTRACT(EPOCH FROM NOW())::BIGINT) \ + ON CONFLICT(contract_address) \ + DO UPDATE SET decoder_ids = EXCLUDED.decoder_ids, identified_at = EXTRACT(EPOCH FROM NOW())::BIGINT" + ), + }; + + sqlx::query(&sql) + .bind(&addr_hex) + .bind(&decoder_ids_str) + .execute(&self.pool) + .await?; Ok(()) } @@ -442,12 +578,20 @@ impl EngineDb { /// Some(decoder_ids) if found, None otherwise pub async fn get_contract_decoders(&self, contract: Felt) -> Result>> { let addr_hex = format!("{contract:#x}"); + let table = self.table("contract_decoders", "engine.contract_decoders"); + let sql = match self.backend { + DbBackend::Sqlite => { + format!("SELECT decoder_ids FROM {table} WHERE contract_address = ?") + } + DbBackend::Postgres => { + format!("SELECT decoder_ids FROM {table} WHERE contract_address = $1") + } + }; - let row = - sqlx::query("SELECT decoder_ids FROM contract_decoders WHERE contract_address = ?") - .bind(&addr_hex) - .fetch_optional(&self.pool) - .await?; + let row = sqlx::query(&sql) + .bind(&addr_hex) + .fetch_optional(&self.pool) + .await?; match row { Some(r) => { diff --git a/src/etl/extractor/block_range.rs b/src/etl/extractor/block_range.rs index cd4fff0..a1d1834 100644 --- a/src/etl/extractor/block_range.rs +++ b/src/etl/extractor/block_range.rs @@ -8,8 +8,10 @@ use async_trait::async_trait; use starknet::core::types::MaybePreConfirmedBlockWithReceipts; use starknet::providers::jsonrpc::{HttpTransport, JsonRpcClient}; use starknet::providers::{Provider, ProviderResponseData}; -use std::collections::HashMap; +use std::collections::{HashMap, VecDeque}; use std::sync::Arc; +use std::time::Instant; +use tokio::task::JoinHandle; use crate::etl::engine_db::EngineDb; use crate::etl::extractor::starknet_helpers::{ @@ -36,6 +38,12 @@ pub struct BlockRangeConfig { /// Number of blocks to fetch per batch (max efficiency: ~100-1000 depending on RPC) pub batch_size: u64, + /// Maximum number of in-flight batches. + /// + /// Values > 1 enable extractor-side prefetch, overlapping next-batch fetch/decode + /// with current-batch sink processing. + pub max_inflight_batches: usize, + /// Retry policy for network failures pub retry_policy: RetryPolicy, } @@ -47,11 +55,19 @@ impl Default for BlockRangeConfig { from_block: 0, to_block: None, batch_size: 100, + max_inflight_batches: 1, retry_policy: RetryPolicy::default(), } } } +#[derive(Debug)] +struct PreparedBatch { + from_block: u64, + next_block: u64, + batch: ExtractionBatch, +} + /// Block range extractor. /// /// Fetches blocks sequentially in batches, extracts events from transaction receipts, @@ -82,6 +98,15 @@ pub struct BlockRangeExtractor { /// Whether we've reached the configured end block. reached_end: bool, + + /// Prefetched batch preparation tasks, ordered by scheduled start block. + prefetch_tasks: VecDeque>>, + + /// Next block number to schedule for preparation. + next_schedule_block: u64, + + /// Last observed chain head from prepared batches. + last_chain_head: Option, } impl BlockRangeExtractor { @@ -101,6 +126,9 @@ impl BlockRangeExtractor { config, current_block: 0, reached_end: false, + prefetch_tasks: VecDeque::new(), + next_schedule_block: 0, + last_chain_head: None, } } @@ -148,9 +176,69 @@ impl BlockRangeExtractor { } } + self.next_schedule_block = self.current_block; + self.last_chain_head = None; + self.abort_prefetch_tasks(); + Ok(()) } + fn max_inflight_batches(&self) -> usize { + self.config.max_inflight_batches.max(1) + } + + fn can_schedule_from(&self, from_block: u64) -> bool { + if let Some(to_block) = self.config.to_block { + return from_block <= to_block; + } + + // Follow-chain mode: avoid overscheduling far beyond the latest known head. + // Allow at most one probe batch just past the head (`head + 1`). + match self.last_chain_head { + Some(chain_head) => from_block <= chain_head.saturating_add(1), + None => true, + } + } + + fn planned_next_start(&self, from_block: u64) -> u64 { + let planned_end = if let Some(to_block) = self.config.to_block { + (from_block + self.config.batch_size - 1).min(to_block) + } else { + from_block + self.config.batch_size - 1 + }; + planned_end.saturating_add(1) + } + + fn schedule_prefetch_task(&mut self, from_block: u64) { + let provider = self.provider.clone(); + let config = self.config.clone(); + tracing::debug!( + target: "torii::etl::block_range", + from_block, + queue_len = self.prefetch_tasks.len() + 1, + "Scheduling prefetched block-range" + ); + self.prefetch_tasks.push_back(tokio::spawn(async move { + BlockRangeExtractor::prepare_batch_for(provider, config, from_block).await + })); + } + + fn refill_prefetch_tasks(&mut self) { + while self.prefetch_tasks.len() < self.max_inflight_batches() + && self.can_schedule_from(self.next_schedule_block) + { + let from_block = self.next_schedule_block; + self.schedule_prefetch_task(from_block); + self.next_schedule_block = self.planned_next_start(from_block); + } + } + + fn abort_prefetch_tasks(&mut self) { + for task in self.prefetch_tasks.drain(..) { + task.abort(); + } + } + /// Fetches a batch of blocks with receipts using JSON-RPC batch requests. /// /// Every block in the range **must** be a mined block on Starknet. Otherwise, the request will fail. @@ -163,18 +251,17 @@ impl BlockRangeExtractor { /// # Returns /// /// A vector of blocks with receipts. - async fn fetch_blocks_batch( - &self, + async fn fetch_blocks_batch_with( + provider: Arc>, + retry_policy: RetryPolicy, from_block: u64, to_block: u64, ) -> Result> { let requests = block_with_receipts_batch_from_block_range(from_block, to_block); - let responses = self - .config - .retry_policy + let responses = retry_policy .execute(|| { - let provider = self.provider.clone(); + let provider = provider.clone(); let requests_ref = &requests; async move { provider @@ -185,7 +272,7 @@ impl BlockRangeExtractor { }) .await?; - let mut blocks = Vec::new(); + let mut blocks = Vec::with_capacity((to_block - from_block + 1) as usize); for (idx, response) in responses.into_iter().enumerate() { let block_num = from_block + idx as u64; match response { @@ -211,6 +298,111 @@ impl BlockRangeExtractor { false // Never stop if to_block is None } } + + async fn prepare_batch_for( + provider: Arc>, + config: BlockRangeConfig, + current_block: u64, + ) -> Result { + let total_start = Instant::now(); + let chain_head = provider.block_number().await?; + + let batch_end = if let Some(to_block) = config.to_block { + (current_block + config.batch_size - 1).min(to_block) + } else if current_block > chain_head { + let batch = ExtractionBatch { + events: Vec::new(), + blocks: HashMap::new(), + transactions: HashMap::new(), + declared_classes: Vec::new(), + deployed_contracts: Vec::new(), + cursor: Some(format!("block:{}", current_block.saturating_sub(1))), + chain_head: Some(chain_head), + }; + return Ok(PreparedBatch { + from_block: current_block, + next_block: current_block, + batch, + }); + } else { + (current_block + config.batch_size - 1).min(chain_head) + }; + + tracing::info!( + target: "torii::etl::block_range", + "Fetching blocks {}-{} (batch size: {})", + current_block, + batch_end, + batch_end - current_block + 1 + ); + + let fetch_start = Instant::now(); + let blocks = Self::fetch_blocks_batch_with( + provider.clone(), + config.retry_policy.clone(), + current_block, + batch_end, + ) + .await?; + let fetch_ms = fetch_start.elapsed().as_millis(); + + let transform_start = Instant::now(); + let mut all_events = Vec::new(); + let mut blocks_map = HashMap::with_capacity(blocks.len()); + let mut transactions_map = HashMap::new(); + let mut all_declared_classes = Vec::new(); + let mut all_deployed_contracts = Vec::new(); + + for block in blocks { + let block_data = block_into_contexts(block)?; + + all_events.reserve(block_data.events.len()); + transactions_map.reserve(block_data.transactions.len()); + all_declared_classes.reserve(block_data.declared_classes.len()); + all_deployed_contracts.reserve(block_data.deployed_contracts.len()); + + blocks_map.insert(block_data.block_context.number, block_data.block_context); + + for tx_ctx in block_data.transactions { + transactions_map.insert(tx_ctx.hash, tx_ctx); + } + + all_events.extend(block_data.events); + all_declared_classes.extend(block_data.declared_classes); + all_deployed_contracts.extend(block_data.deployed_contracts); + } + let transform_ms = transform_start.elapsed().as_millis(); + let total_ms = total_start.elapsed().as_millis(); + + tracing::info!( + target: "torii::etl::block_range", + "Extracted {} events, {} declared classes, {} deployed contracts from {} blocks ({} transactions) [fetch={}ms transform={}ms total={}ms]", + all_events.len(), + all_declared_classes.len(), + all_deployed_contracts.len(), + blocks_map.len(), + transactions_map.len(), + fetch_ms, + transform_ms, + total_ms + ); + + let batch = ExtractionBatch { + events: all_events, + blocks: blocks_map, + transactions: transactions_map, + declared_classes: all_declared_classes, + deployed_contracts: all_deployed_contracts, + cursor: Some(format!("block:{batch_end}")), + chain_head: Some(chain_head), + }; + + Ok(PreparedBatch { + from_block: current_block, + next_block: batch_end + 1, + batch, + }) + } } #[async_trait] @@ -264,98 +456,46 @@ impl Extractor for BlockRangeExtractor { return Ok(ExtractionBatch::empty()); } - // Fetch chain head for live detection - let chain_head = self.provider.block_number().await?; + self.refill_prefetch_tasks(); + if self.prefetch_tasks.is_empty() { + return Ok(ExtractionBatch::empty()); + } - // Determine the batch end block - let batch_end = if let Some(to_block) = self.config.to_block { - (self.current_block + self.config.batch_size - 1).min(to_block) - } else { - // No end block configured - follow chain head - if self.current_block > chain_head { - // We're ahead of the chain - return empty batch for polling - tracing::debug!( - target: "torii::etl::block_range", - "Waiting for new blocks (current: {}, chain head: {})", - self.current_block, - chain_head - ); - return Ok(ExtractionBatch { - events: Vec::new(), - blocks: HashMap::new(), - transactions: HashMap::new(), - declared_classes: Vec::new(), - deployed_contracts: Vec::new(), - cursor: Some(format!("block:{}", self.current_block.saturating_sub(1))), - chain_head: Some(chain_head), - }); - } + let prepared = self + .prefetch_tasks + .pop_front() + .expect("prefetch task queue checked as non-empty") + .await + .context("Block-range prefetch task failed to join")??; + + if prepared.from_block != self.current_block { + anyhow::bail!( + "Prefetch ordering mismatch: expected from_block {}, got {}", + self.current_block, + prepared.from_block + ); + } - (self.current_block + self.config.batch_size - 1).min(chain_head) - }; + self.last_chain_head = prepared.batch.chain_head; + self.current_block = prepared.next_block; - tracing::info!( + tracing::debug!( target: "torii::etl::block_range", - "Fetching blocks {}-{} (batch size: {})", - self.current_block, - batch_end, - batch_end - self.current_block + 1 + fetched_from = prepared.from_block, + next_block = self.current_block, + queue_len = self.prefetch_tasks.len(), + "Using prefetched block-range batch" ); - // Fetch blocks - let blocks = self - .fetch_blocks_batch(self.current_block, batch_end) - .await?; - - // Extract data from blocks and build enriched batch - let mut all_events = Vec::new(); - let mut blocks_map = HashMap::new(); - let mut transactions_map = HashMap::new(); - let mut all_declared_classes = Vec::new(); - let mut all_deployed_contracts = Vec::new(); - - for block in blocks { - let block_data = block_into_contexts(block)?; - - blocks_map.insert(block_data.block_context.number, block_data.block_context); - - for tx_ctx in block_data.transactions { - transactions_map.insert(tx_ctx.hash, tx_ctx); - } - - all_events.extend(block_data.events); - all_declared_classes.extend(block_data.declared_classes); - all_deployed_contracts.extend(block_data.deployed_contracts); + if self.config.to_block.is_none() && prepared.batch.is_empty() { + // Follow-chain mode: if we reached chain head, drop speculative work and + // restart scheduling from the same block on the next extract call. + self.abort_prefetch_tasks(); + self.next_schedule_block = self.current_block; + } else { + self.refill_prefetch_tasks(); } - tracing::info!( - target: "torii::etl::block_range", - "Extracted {} events, {} declared classes, {} deployed contracts from {} blocks ({} transactions)", - all_events.len(), - all_declared_classes.len(), - all_deployed_contracts.len(), - blocks_map.len(), - transactions_map.len() - ); - - // Update cursor - let cursor = format!("block:{batch_end}"); - - // NOTE: Cursor persistence is now handled by commit_cursor() which is called - // AFTER sink processing completes. This ensures no data loss if the process - // is killed between extraction and sink processing. - - // Update internal state - self.current_block = batch_end + 1; - - Ok(ExtractionBatch { - events: all_events, - blocks: blocks_map, - transactions: transactions_map, - declared_classes: all_declared_classes, - deployed_contracts: all_deployed_contracts, - cursor: Some(cursor), - chain_head: Some(chain_head), - }) + Ok(prepared.batch) } } diff --git a/src/etl/identification/registry.rs b/src/etl/identification/registry.rs index c793b59..503cf18 100644 --- a/src/etl/identification/registry.rs +++ b/src/etl/identification/registry.rs @@ -4,7 +4,7 @@ //! It also supports runtime identification of unknown contracts by fetching their ABIs //! and running identification rules. -use std::collections::{BTreeSet, HashMap, HashSet}; +use std::collections::{BTreeSet, HashMap, HashSet, VecDeque}; /// Maximum number of requests per batch to avoid RPC limits const MAX_BATCH_SIZE: usize = 500; @@ -70,13 +70,65 @@ pub struct ContractRegistry { /// Identification rules for matching contract ABIs to decoders rules: Vec>, - /// In-memory cache: contract → decoders - /// Empty Vec means "identified but no decoders match" + /// In-memory positive cache: contract → decoders /// Wrapped in Arc for sharing with DecoderContext cache: Arc>>>, + + /// Bounded in-memory negative cache for contracts with no decoder match. + /// + /// This avoids repeated identification work for unknown contracts while + /// preventing unbounded memory growth. + negative_cache: Arc>, +} + +/// Bounded in-memory negative cache (FIFO/LRU-like). +struct NegativeCache { + set: HashSet, + order: VecDeque, + capacity: usize, +} + +impl NegativeCache { + fn new(capacity: usize) -> Self { + Self { + set: HashSet::new(), + order: VecDeque::new(), + capacity, + } + } + + fn contains(&self, contract: &Felt) -> bool { + self.set.contains(contract) + } + + fn insert(&mut self, contract: Felt) { + if self.capacity == 0 { + return; + } + + if self.set.contains(&contract) { + self.order.retain(|c| c != &contract); + self.order.push_back(contract); + return; + } + + self.set.insert(contract); + self.order.push_back(contract); + + while self.set.len() > self.capacity { + if let Some(oldest) = self.order.pop_front() { + self.set.remove(&oldest); + } else { + break; + } + } + } } impl ContractRegistry { + /// Maximum number of contracts to keep in negative cache. + const NEGATIVE_CACHE_CAPACITY: usize = 100_000; + /// Create a new contract registry. /// /// # Arguments @@ -89,6 +141,9 @@ impl ContractRegistry { engine_db, rules: Vec::new(), cache: Arc::new(RwLock::new(HashMap::new())), + negative_cache: Arc::new(RwLock::new(NegativeCache::new( + Self::NEGATIVE_CACHE_CAPACITY, + ))), } } @@ -112,20 +167,27 @@ impl ContractRegistry { /// previously identified contracts. pub async fn load_from_db(&self) -> Result { let mappings = self.engine_db.get_all_contract_decoders().await?; - let count = mappings.len(); + let mut loaded_positive = 0usize; + let mut skipped_empty = 0usize; let mut cache = self.cache.write().await; for (contract, decoder_ids, _timestamp) in mappings { + if decoder_ids.is_empty() { + skipped_empty += 1; + continue; + } cache.insert(contract, decoder_ids); + loaded_positive += 1; } tracing::info!( target: "torii::etl::identification", - "Loaded {} contract mappings from database", - count + loaded_positive, + skipped_empty, + "Loaded contract mappings from database (empty mappings skipped from memory cache)" ); - Ok(count) + Ok(loaded_positive) } /// Get a shared reference to the cache for use with DecoderContext. @@ -143,7 +205,7 @@ impl ContractRegistry { /// 2. Batch fetching all class hashes at once /// 3. Batch fetching all unique contract classes (deduplicated by class hash) /// 4. Running all identification rules - /// 5. Caching results in both memory and database + /// 5. Caching positives in memory and database, negatives in bounded memory /// /// # Performance /// @@ -158,7 +220,7 @@ impl ContractRegistry { /// # Returns /// /// HashMap of contract → decoder IDs for contracts that were successfully identified. - /// Contracts that fail identification are cached as empty (to avoid re-fetching). + /// Contracts that fail identification are cached in a bounded in-memory negative cache. pub async fn identify_contracts( &self, contract_addresses: &[Felt], @@ -166,11 +228,13 @@ impl ContractRegistry { // Deduplicate and filter out contracts already in cache let unique_addresses: HashSet = contract_addresses.iter().copied().collect(); let cache = self.cache.read().await; + let negative_cache = self.negative_cache.read().await; let unknown: Vec = unique_addresses .into_iter() - .filter(|addr| !cache.contains_key(addr)) + .filter(|addr| !cache.contains_key(addr) && !negative_cache.contains(addr)) .collect(); drop(cache); + drop(negative_cache); if unknown.is_empty() { return Ok(HashMap::new()); @@ -302,9 +366,13 @@ impl ContractRegistry { ); } - // Cache and persist - self.cache_and_persist(*contract_address, decoder_ids.clone()) - .await; + // Cache and persist positives; cache negatives only in bounded memory. + if decoder_ids.is_empty() { + self.cache_empty(*contract_address).await; + } else { + self.cache_and_persist(*contract_address, decoder_ids.clone()) + .await; + } results.insert(*contract_address, decoder_ids); } @@ -349,22 +417,8 @@ impl ContractRegistry { /// Cache empty result for a contract that failed identification. async fn cache_empty(&self, contract_address: Felt) { - { - let mut cache = self.cache.write().await; - cache.insert(contract_address, Vec::new()); - } - if let Err(e) = self - .engine_db - .set_contract_decoders(contract_address, &[]) - .await - { - tracing::warn!( - target: "torii::etl::identification", - contract = %format!("{:#x}", contract_address), - error = %e, - "Failed to persist empty contract identification" - ); - } + let mut negative_cache = self.negative_cache.write().await; + negative_cache.insert(contract_address); } /// Cache and persist identification result. diff --git a/src/lib.rs b/src/lib.rs index b774b63..ce8ffe6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -111,6 +111,12 @@ pub struct ToriiConfig { /// Defaults to current directory if not specified. pub database_root: PathBuf, + /// Optional explicit engine database URL/path. + /// + /// If set, Torii uses this value directly when creating `EngineDb`. + /// This can be a PostgreSQL URL (`postgres://...`) or SQLite path/URL. + pub engine_database_url: Option, + /// Contract filter (explicit mappings + blacklist). pub contract_filter: ContractFilter, @@ -172,6 +178,7 @@ pub struct ToriiConfigBuilder { sample_events: Vec, extractor: Option>, database_root: Option, + engine_database_url: Option, contract_filter: Option, identification_rules: Vec>, registry_cache: Option< @@ -307,6 +314,17 @@ impl ToriiConfigBuilder { self } + /// Sets an explicit engine database URL/path. + /// + /// Examples: + /// - `postgres://user:pass@localhost:5432/torii` + /// - `sqlite::memory:` + /// - `./torii-data/engine.db` + pub fn engine_database_url(mut self, url: impl Into) -> Self { + self.engine_database_url = Some(url.into()); + self + } + /// Sets the contract filter (mappings + blacklist). pub fn with_contract_filter(mut self, filter: ContractFilter) -> Self { self.contract_filter = Some(filter); @@ -479,6 +497,7 @@ impl ToriiConfigBuilder { sample_events: self.sample_events, extractor: self.extractor, database_root: self.database_root.unwrap_or_else(|| PathBuf::from(".")), + engine_database_url: self.engine_database_url, contract_filter, identification_rules: self.identification_rules, registry_cache: self.registry_cache, @@ -518,9 +537,15 @@ pub async fn run(config: ToriiConfig) -> Result<(), Box> let multi_sink = Arc::new(MultiSink::new(initialized_sinks)); // Create EngineDb (needed by DecoderContext) - let engine_db_path = config.database_root.join("engine.db"); + let engine_db_path = config.engine_database_url.clone().unwrap_or_else(|| { + config + .database_root + .join("engine.db") + .to_string_lossy() + .to_string() + }); let engine_db_config = etl::engine_db::EngineDbConfig { - path: engine_db_path.to_string_lossy().to_string(), + path: engine_db_path, }; let engine_db = etl::EngineDb::new(engine_db_config).await?; let engine_db = Arc::new(engine_db);