diff --git a/.sqlx/query-65341427fdf27bce4c2f9ec5e705c6fd923b63f11645d8ff7aa661fe3bd4c58e.json b/.sqlx/query-6f86fc2bd2cbb81c658293aad73e5e14f238bb015839e33674b644d59e08ffa5.json similarity index 71% rename from .sqlx/query-65341427fdf27bce4c2f9ec5e705c6fd923b63f11645d8ff7aa661fe3bd4c58e.json rename to .sqlx/query-6f86fc2bd2cbb81c658293aad73e5e14f238bb015839e33674b644d59e08ffa5.json index 6db308f..cf7fe8d 100644 --- a/.sqlx/query-65341427fdf27bce4c2f9ec5e705c6fd923b63f11645d8ff7aa661fe3bd4c58e.json +++ b/.sqlx/query-6f86fc2bd2cbb81c658293aad73e5e14f238bb015839e33674b644d59e08ffa5.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n coinbase_receiver_info AS (\n SELECT\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no,\n coinbase_receiver_pk.value AS coinbase_receiver\n FROM\n blocks_internal_commands AS bic\n INNER JOIN internal_commands AS ic ON bic.internal_command_id=ic.id\n INNER JOIN blocks_internal_commands AS bic_coinbase_receiver ON bic.block_id=bic_coinbase_receiver.block_id\n AND (\n bic.internal_command_id<>bic_coinbase_receiver.internal_command_id\n OR bic.sequence_no<>bic_coinbase_receiver.sequence_no\n OR bic.secondary_sequence_no<>bic_coinbase_receiver.secondary_sequence_no\n )\n INNER JOIN internal_commands AS ic_coinbase_receiver ON ic.command_type='fee_transfer_via_coinbase'\n AND ic_coinbase_receiver.command_type='coinbase'\n AND bic_coinbase_receiver.internal_command_id=ic_coinbase_receiver.id\n INNER JOIN public_keys AS coinbase_receiver_pk ON ic_coinbase_receiver.receiver_id=coinbase_receiver_pk.id\n ),\n internal_commands_info AS (\n SELECT DISTINCT\n ON (\n ica.block_id,\n ica.id,\n ica.sequence_no,\n ica.secondary_sequence_no\n ) ica.id,\n ica.command_type AS \"command_type: InternalCommandType\",\n ica.receiver_id,\n ica.fee,\n ica.hash,\n ica.receiver AS receiver,\n cri.coinbase_receiver AS \"coinbase_receiver?\",\n ica.sequence_no,\n ica.secondary_sequence_no,\n ica.block_id,\n ica.status AS \"status: TransactionStatus\",\n b.state_hash,\n b.height\n FROM\n internal_commands_aggregated AS ica\n INNER JOIN blocks AS b ON ica.block_id=b.id\n AND (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n LEFT JOIN coinbase_receiver_info AS cri ON ica.block_id=cri.block_id\n AND ica.id=cri.internal_command_id\n AND ica.sequence_no=cri.sequence_no\n AND ica.secondary_sequence_no=cri.secondary_sequence_no\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=ica.hash\n OR $2 IS NULL\n )\n AND (\n (\n $3=ica.receiver\n OR $3=cri.coinbase_receiver\n )\n AND $4=''\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=ica.status\n OR $5 IS NULL\n )\n AND (\n $6=ica.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=ica.receiver\n OR $7=cri.coinbase_receiver\n )\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n internal_commands_info\n )\nSELECT\n i.*,\n id_count.total_count,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n internal_commands_info\n ORDER BY\n block_id,\n id,\n sequence_no,\n secondary_sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS i\n LEFT JOIN account_identifiers AS ai ON i.receiver_id=ai.public_key_id\n LEFT JOIN accounts_created AS ac ON ai.id=ac.account_identifier_id\n AND i.block_id=ac.block_id\n AND i.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n i.receiver_id=ic2.receiver_id\n AND bic2.block_id=i.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n i.receiver_id=uc2.receiver_id\n AND buc2.block_id=i.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n i.block_id,\n i.id,\n i.sequence_no,\n i.secondary_sequence_no\n", + "query": "WITH\n coinbase_receiver_info AS (\n SELECT\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no,\n coinbase_receiver_pk.value AS coinbase_receiver\n FROM\n blocks_internal_commands AS bic\n INNER JOIN internal_commands AS ic ON bic.internal_command_id=ic.id\n INNER JOIN blocks_internal_commands AS bic_coinbase_receiver ON bic.block_id=bic_coinbase_receiver.block_id\n AND (\n bic.internal_command_id<>bic_coinbase_receiver.internal_command_id\n OR bic.sequence_no<>bic_coinbase_receiver.sequence_no\n OR bic.secondary_sequence_no<>bic_coinbase_receiver.secondary_sequence_no\n )\n INNER JOIN internal_commands AS ic_coinbase_receiver ON ic.command_type='fee_transfer_via_coinbase'\n AND ic_coinbase_receiver.command_type='coinbase'\n AND bic_coinbase_receiver.internal_command_id=ic_coinbase_receiver.id\n INNER JOIN public_keys AS coinbase_receiver_pk ON ic_coinbase_receiver.receiver_id=coinbase_receiver_pk.id\n ),\n internal_commands_info AS (\n SELECT DISTINCT\n ON (\n ica.block_id,\n ica.id,\n ica.sequence_no,\n ica.secondary_sequence_no\n ) ica.id,\n ica.command_type AS \"command_type: InternalCommandType\",\n ica.receiver_id,\n ica.fee,\n ica.hash,\n ica.receiver AS receiver,\n cri.coinbase_receiver AS \"coinbase_receiver?\",\n ica.sequence_no,\n ica.secondary_sequence_no,\n ica.block_id,\n ica.status AS \"status: TransactionStatus\",\n b.state_hash,\n b.height\n FROM\n internal_commands_aggregated AS ica\n INNER JOIN blocks AS b ON ica.block_id=b.id\n AND (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n LEFT JOIN coinbase_receiver_info AS cri ON ica.block_id=cri.block_id\n AND ica.id=cri.internal_command_id\n AND ica.sequence_no=cri.sequence_no\n AND ica.secondary_sequence_no=cri.secondary_sequence_no\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=ica.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n $3=ica.receiver\n OR $3=cri.coinbase_receiver\n )\n OR $3 IS NULL\n )\n )\n AND (\n $4=''\n OR $4 IS NULL\n )\n AND (\n $5=ica.status\n OR $5 IS NULL\n )\n AND (\n $6=ica.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=ica.receiver\n OR $7=cri.coinbase_receiver\n )\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n internal_commands_info\n )\nSELECT\n i.*,\n id_count.total_count,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n internal_commands_info\n ORDER BY\n block_id,\n id,\n sequence_no,\n secondary_sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS i\n LEFT JOIN account_identifiers AS ai ON i.receiver_id=ai.public_key_id\n LEFT JOIN accounts_created AS ac ON ai.id=ac.account_identifier_id\n AND i.block_id=ac.block_id\n AND i.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n i.receiver_id=ic2.receiver_id\n AND bic2.block_id=i.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n i.receiver_id=uc2.receiver_id\n AND buc2.block_id=i.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n i.block_id,\n i.id,\n i.sequence_no,\n i.secondary_sequence_no\n", "describe": { "columns": [ { @@ -151,5 +151,5 @@ false ] }, - "hash": "65341427fdf27bce4c2f9ec5e705c6fd923b63f11645d8ff7aa661fe3bd4c58e" + "hash": "6f86fc2bd2cbb81c658293aad73e5e14f238bb015839e33674b644d59e08ffa5" } diff --git a/.sqlx/query-42778b362d013cc8aee326e73238a90bdeaee91872de8c760c19d57e5e2ee477.json b/.sqlx/query-a010d9bea96554cb18027c6e284bce86040419ac6803886ebe42d672d36f6137.json similarity index 73% rename from .sqlx/query-42778b362d013cc8aee326e73238a90bdeaee91872de8c760c19d57e5e2ee477.json rename to .sqlx/query-a010d9bea96554cb18027c6e284bce86040419ac6803886ebe42d672d36f6137.json index 1c812d6..446ce4b 100644 --- a/.sqlx/query-42778b362d013cc8aee326e73238a90bdeaee91872de8c760c19d57e5e2ee477.json +++ b/.sqlx/query-a010d9bea96554cb18027c6e284bce86040419ac6803886ebe42d672d36f6137.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n zkapp_commands_info AS (\n SELECT\n zca.id,\n zca.memo,\n zca.hash,\n zca.fee_payer,\n pk_update_body.value AS pk_update_body,\n zca.fee,\n zca.valid_until,\n zca.nonce,\n zca.sequence_no,\n zca.status AS \"status: TransactionStatus\",\n zaub.balance_change,\n zca.block_id,\n b.state_hash,\n b.height,\n token_update_body.value AS token,\n ARRAY(\n SELECT\n unnest(zauf.failures)\n FROM\n zkapp_account_update_failures AS zauf\n WHERE\n zauf.id=ANY (zca.failure_reasons_ids)\n ) AS failure_reasons\n FROM\n zkapp_commands_aggregated AS zca\n INNER JOIN blocks AS b ON zca.block_id=b.id\n AND (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n LEFT JOIN zkapp_account_update AS zau ON zau.id=ANY (zca.zkapp_account_updates_ids)\n INNER JOIN zkapp_account_update_body AS zaub ON zau.body_id=zaub.id\n INNER JOIN account_identifiers AS ai_update_body ON zaub.account_identifier_id=ai_update_body.id\n INNER JOIN public_keys AS pk_update_body ON ai_update_body.public_key_id=pk_update_body.id\n INNER JOIN tokens AS token_update_body ON ai_update_body.token_id=token_update_body.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=zca.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n $3=zca.fee_payer\n AND $4=''\n )\n OR (\n $3=pk_update_body.value\n AND $4=token_update_body.value\n )\n )\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=zca.status\n OR $5 IS NULL\n )\n AND (\n $6=zca.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=zca.fee_payer\n OR $7=pk_update_body.value\n )\n OR $7 IS NULL\n )\n ),\n zkapp_commands_ids AS (\n SELECT DISTINCT\n id,\n block_id,\n sequence_no\n FROM\n zkapp_commands_info\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n zkapp_commands_ids\n )\nSELECT\n zc.*,\n id_count.total_count\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n zkapp_commands_ids\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS ids\n INNER JOIN zkapp_commands_info AS zc ON ids.id=zc.id\n AND ids.block_id=zc.block_id\n AND ids.sequence_no=zc.sequence_no\nORDER BY\n ids.block_id,\n ids.id,\n ids.sequence_no\n", + "query": "WITH\n zkapp_commands_info AS (\n SELECT\n zca.id,\n zca.memo,\n zca.hash,\n zca.fee_payer,\n pk_update_body.value AS pk_update_body,\n zca.fee,\n zca.valid_until,\n zca.nonce,\n zca.sequence_no,\n zca.status AS \"status: TransactionStatus\",\n zaub.balance_change,\n zca.block_id,\n b.state_hash,\n b.height,\n token_update_body.value AS token,\n ARRAY(\n SELECT\n unnest(zauf.failures)\n FROM\n zkapp_account_update_failures AS zauf\n WHERE\n zauf.id=ANY (zca.failure_reasons_ids)\n ) AS failure_reasons\n FROM\n zkapp_commands_aggregated AS zca\n INNER JOIN blocks AS b ON zca.block_id=b.id\n AND (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n LEFT JOIN zkapp_account_update AS zau ON zau.id=ANY (zca.zkapp_account_updates_ids)\n INNER JOIN zkapp_account_update_body AS zaub ON zau.body_id=zaub.id\n INNER JOIN account_identifiers AS ai_update_body ON zaub.account_identifier_id=ai_update_body.id\n INNER JOIN public_keys AS pk_update_body ON ai_update_body.public_key_id=pk_update_body.id\n INNER JOIN tokens AS token_update_body ON ai_update_body.token_id=token_update_body.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=zca.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n $4=token_update_body.value\n AND (\n $3=pk_update_body.value\n OR $3=zca.fee_payer\n )\n )\n AND $3 IS NOT NULL\n AND $4 IS NOT NULL\n )\n OR (\n (\n $3=zca.fee_payer\n OR $3=pk_update_body.value\n )\n AND $3 IS NOT NULL\n AND $4 IS NULL\n )\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=zca.status\n OR $5 IS NULL\n )\n AND (\n $6=zca.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=zca.fee_payer\n OR $7=pk_update_body.value\n )\n OR $7 IS NULL\n )\n ),\n zkapp_commands_ids AS (\n SELECT DISTINCT\n id,\n block_id,\n sequence_no\n FROM\n zkapp_commands_info\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n zkapp_commands_ids\n )\nSELECT\n zc.*,\n id_count.total_count\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n zkapp_commands_ids\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS ids\n INNER JOIN zkapp_commands_info AS zc ON ids.id=zc.id\n AND ids.block_id=zc.block_id\n AND ids.sequence_no=zc.sequence_no\nORDER BY\n ids.block_id,\n ids.id,\n ids.sequence_no,\n zc.balance_change\n", "describe": { "columns": [ { @@ -152,5 +152,5 @@ null ] }, - "hash": "42778b362d013cc8aee326e73238a90bdeaee91872de8c760c19d57e5e2ee477" + "hash": "a010d9bea96554cb18027c6e284bce86040419ac6803886ebe42d672d36f6137" } diff --git a/.sqlx/query-d93db1f20d1bba42aa81b0262b61265537ece2ae5d5278afa3e9027b2066aeb4.json b/.sqlx/query-a0f2e0b67d702a9e8b2b609f9a20d0c8a84527cc8cd3422733259f626966d791.json similarity index 73% rename from .sqlx/query-d93db1f20d1bba42aa81b0262b61265537ece2ae5d5278afa3e9027b2066aeb4.json rename to .sqlx/query-a0f2e0b67d702a9e8b2b609f9a20d0c8a84527cc8cd3422733259f626966d791.json index d9052f7..49c9c6d 100644 --- a/.sqlx/query-d93db1f20d1bba42aa81b0262b61265537ece2ae5d5278afa3e9027b2066aeb4.json +++ b/.sqlx/query-a0f2e0b67d702a9e8b2b609f9a20d0c8a84527cc8cd3422733259f626966d791.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n coinbase_receiver_info AS (\n SELECT\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no,\n coinbase_receiver_pk.value AS coinbase_receiver\n FROM\n blocks_internal_commands AS bic\n INNER JOIN internal_commands AS ic ON bic.internal_command_id=ic.id\n INNER JOIN blocks_internal_commands AS bic_coinbase_receiver ON bic.block_id=bic_coinbase_receiver.block_id\n AND (\n bic.internal_command_id<>bic_coinbase_receiver.internal_command_id\n OR bic.sequence_no<>bic_coinbase_receiver.sequence_no\n OR bic.secondary_sequence_no<>bic_coinbase_receiver.secondary_sequence_no\n )\n INNER JOIN internal_commands AS ic_coinbase_receiver ON ic.command_type='fee_transfer_via_coinbase'\n AND ic_coinbase_receiver.command_type='coinbase'\n AND bic_coinbase_receiver.internal_command_id=ic_coinbase_receiver.id\n INNER JOIN public_keys AS coinbase_receiver_pk ON ic_coinbase_receiver.receiver_id=coinbase_receiver_pk.id\n ),\n internal_commands_info AS (\n SELECT DISTINCT\n ON (\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no\n ) i.id,\n i.command_type AS \"command_type: InternalCommandType\",\n i.receiver_id,\n i.fee,\n i.hash,\n pk.value AS receiver,\n cri.coinbase_receiver AS \"coinbase_receiver?\",\n bic.sequence_no,\n bic.secondary_sequence_no,\n bic.block_id,\n bic.status AS \"status: TransactionStatus\",\n b.state_hash,\n b.height\n FROM\n internal_commands AS i\n INNER JOIN blocks_internal_commands AS bic ON i.id=bic.internal_command_id\n INNER JOIN public_keys AS pk ON i.receiver_id=pk.id\n INNER JOIN blocks AS b ON bic.block_id=b.id\n LEFT JOIN coinbase_receiver_info AS cri ON bic.block_id=cri.block_id\n AND bic.internal_command_id=cri.internal_command_id\n AND bic.sequence_no=cri.sequence_no\n AND bic.secondary_sequence_no=cri.secondary_sequence_no\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=i.hash\n OR $2 IS NULL\n )\n AND (\n (\n $3=pk.value\n OR $3=cri.coinbase_receiver\n )\n AND $4=''\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=bic.status\n OR $5 IS NULL\n )\n AND (\n $6=bic.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=pk.value\n OR $7=cri.coinbase_receiver\n )\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n internal_commands_info\n )\nSELECT\n i.*,\n id_count.total_count,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n internal_commands_info\n ORDER BY\n block_id,\n id,\n sequence_no,\n secondary_sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS i\n LEFT JOIN account_identifiers AS ai ON i.receiver_id=ai.public_key_id\n LEFT JOIN accounts_created AS ac ON ai.id=ac.account_identifier_id\n AND i.block_id=ac.block_id\n AND i.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n i.receiver_id=ic2.receiver_id\n AND bic2.block_id=i.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n i.receiver_id=uc2.receiver_id\n AND buc2.block_id=i.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n i.block_id,\n i.id,\n i.sequence_no,\n i.secondary_sequence_no\n", + "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n coinbase_receiver_info AS (\n SELECT\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no,\n coinbase_receiver_pk.value AS coinbase_receiver\n FROM\n blocks_internal_commands AS bic\n INNER JOIN internal_commands AS ic ON bic.internal_command_id=ic.id\n INNER JOIN blocks_internal_commands AS bic_coinbase_receiver ON bic.block_id=bic_coinbase_receiver.block_id\n AND (\n bic.internal_command_id<>bic_coinbase_receiver.internal_command_id\n OR bic.sequence_no<>bic_coinbase_receiver.sequence_no\n OR bic.secondary_sequence_no<>bic_coinbase_receiver.secondary_sequence_no\n )\n INNER JOIN internal_commands AS ic_coinbase_receiver ON ic.command_type='fee_transfer_via_coinbase'\n AND ic_coinbase_receiver.command_type='coinbase'\n AND bic_coinbase_receiver.internal_command_id=ic_coinbase_receiver.id\n INNER JOIN public_keys AS coinbase_receiver_pk ON ic_coinbase_receiver.receiver_id=coinbase_receiver_pk.id\n ),\n internal_commands_info AS (\n SELECT DISTINCT\n ON (\n bic.block_id,\n bic.internal_command_id,\n bic.sequence_no,\n bic.secondary_sequence_no\n ) i.id,\n i.command_type AS \"command_type: InternalCommandType\",\n i.receiver_id,\n i.fee,\n i.hash,\n pk.value AS receiver,\n cri.coinbase_receiver AS \"coinbase_receiver?\",\n bic.sequence_no,\n bic.secondary_sequence_no,\n bic.block_id,\n bic.status AS \"status: TransactionStatus\",\n b.state_hash,\n b.height\n FROM\n internal_commands AS i\n INNER JOIN blocks_internal_commands AS bic ON i.id=bic.internal_command_id\n INNER JOIN public_keys AS pk ON i.receiver_id=pk.id\n INNER JOIN blocks AS b ON bic.block_id=b.id\n LEFT JOIN coinbase_receiver_info AS cri ON bic.block_id=cri.block_id\n AND bic.internal_command_id=cri.internal_command_id\n AND bic.sequence_no=cri.sequence_no\n AND bic.secondary_sequence_no=cri.secondary_sequence_no\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=i.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n $3=pk.value\n OR $3=cri.coinbase_receiver\n )\n OR $3 IS NULL\n )\n )\n AND (\n $4=''\n OR $4 IS NULL\n )\n AND (\n $5=bic.status\n OR $5 IS NULL\n )\n AND (\n $6=bic.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=pk.value\n OR $7=cri.coinbase_receiver\n )\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n internal_commands_info\n )\nSELECT\n i.*,\n id_count.total_count,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n internal_commands_info\n ORDER BY\n block_id,\n id,\n sequence_no,\n secondary_sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS i\n LEFT JOIN account_identifiers AS ai ON i.receiver_id=ai.public_key_id\n LEFT JOIN accounts_created AS ac ON ai.id=ac.account_identifier_id\n AND i.block_id=ac.block_id\n AND i.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n i.receiver_id=ic2.receiver_id\n AND bic2.block_id=i.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n i.receiver_id=uc2.receiver_id\n AND buc2.block_id=i.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n i.block_id,\n i.id,\n i.sequence_no,\n i.secondary_sequence_no\n", "describe": { "columns": [ { @@ -151,5 +151,5 @@ false ] }, - "hash": "d93db1f20d1bba42aa81b0262b61265537ece2ae5d5278afa3e9027b2066aeb4" + "hash": "a0f2e0b67d702a9e8b2b609f9a20d0c8a84527cc8cd3422733259f626966d791" } diff --git a/.sqlx/query-411a992540d9c8a1eaa3461adc67005bb4515d21a064c1ad13ab9746e23763da.json b/.sqlx/query-a70a673e1e6cd9d6f1814a386007cbff5254627d58df0e00e72d32ef0fb35b8e.json similarity index 75% rename from .sqlx/query-411a992540d9c8a1eaa3461adc67005bb4515d21a064c1ad13ab9746e23763da.json rename to .sqlx/query-a70a673e1e6cd9d6f1814a386007cbff5254627d58df0e00e72d32ef0fb35b8e.json index 8bf03bd..876fdfe 100644 --- a/.sqlx/query-411a992540d9c8a1eaa3461adc67005bb4515d21a064c1ad13ab9746e23763da.json +++ b/.sqlx/query-a70a673e1e6cd9d6f1814a386007cbff5254627d58df0e00e72d32ef0fb35b8e.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n zkapp_commands_info AS (\n SELECT\n zc.id,\n zc.memo,\n zc.hash,\n pk_fee_payer.value AS fee_payer,\n pk_update_body.value AS pk_update_body,\n zfpb.fee,\n zfpb.valid_until,\n zfpb.nonce,\n bzc.sequence_no,\n bzc.status AS \"status: TransactionStatus\",\n zaub.balance_change,\n bzc.block_id,\n b.state_hash,\n b.height,\n token_update_body.value AS token,\n ARRAY(\n SELECT\n unnest(zauf.failures)\n FROM\n zkapp_account_update_failures AS zauf\n WHERE\n zauf.id=ANY (bzc.failure_reasons_ids)\n ) AS failure_reasons\n FROM\n zkapp_commands AS zc\n INNER JOIN blocks_zkapp_commands AS bzc ON zc.id=bzc.zkapp_command_id\n INNER JOIN zkapp_fee_payer_body AS zfpb ON zc.zkapp_fee_payer_body_id=zfpb.id\n INNER JOIN public_keys AS pk_fee_payer ON zfpb.public_key_id=pk_fee_payer.id\n INNER JOIN blocks AS b ON bzc.block_id=b.id\n LEFT JOIN zkapp_account_update AS zau ON zau.id=ANY (zc.zkapp_account_updates_ids)\n INNER JOIN zkapp_account_update_body AS zaub ON zau.body_id=zaub.id\n INNER JOIN account_identifiers AS ai_update_body ON zaub.account_identifier_id=ai_update_body.id\n INNER JOIN public_keys AS pk_update_body ON ai_update_body.public_key_id=pk_update_body.id\n INNER JOIN tokens AS token_update_body ON ai_update_body.token_id=token_update_body.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=zc.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n $3=pk_fee_payer.value\n AND $4=''\n )\n OR (\n $3=pk_update_body.value\n AND $4=token_update_body.value\n )\n )\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=bzc.status\n OR $5 IS NULL\n )\n AND (\n $6=bzc.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=pk_fee_payer.value\n OR $7=pk_update_body.value\n )\n OR $7 IS NULL\n )\n ),\n zkapp_commands_ids AS (\n SELECT DISTINCT\n id,\n block_id,\n sequence_no\n FROM\n zkapp_commands_info\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n zkapp_commands_ids\n )\nSELECT\n zc.*,\n id_count.total_count\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n zkapp_commands_ids\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS ids\n INNER JOIN zkapp_commands_info AS zc ON ids.id=zc.id\n AND ids.block_id=zc.block_id\n AND ids.sequence_no=zc.sequence_no\nORDER BY\n ids.block_id,\n ids.id,\n ids.sequence_no\n", + "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n zkapp_commands_info AS (\n SELECT\n zc.id,\n zc.memo,\n zc.hash,\n pk_fee_payer.value AS fee_payer,\n pk_update_body.value AS pk_update_body,\n zfpb.fee,\n zfpb.valid_until,\n zfpb.nonce,\n bzc.sequence_no,\n bzc.status AS \"status: TransactionStatus\",\n zaub.balance_change,\n bzc.block_id,\n b.state_hash,\n b.height,\n token_update_body.value AS token,\n ARRAY(\n SELECT\n unnest(zauf.failures)\n FROM\n zkapp_account_update_failures AS zauf\n WHERE\n zauf.id=ANY (bzc.failure_reasons_ids)\n ) AS failure_reasons\n FROM\n zkapp_commands AS zc\n INNER JOIN blocks_zkapp_commands AS bzc ON zc.id=bzc.zkapp_command_id\n INNER JOIN zkapp_fee_payer_body AS zfpb ON zc.zkapp_fee_payer_body_id=zfpb.id\n INNER JOIN public_keys AS pk_fee_payer ON zfpb.public_key_id=pk_fee_payer.id\n INNER JOIN blocks AS b ON bzc.block_id=b.id\n LEFT JOIN zkapp_account_update AS zau ON zau.id=ANY (zc.zkapp_account_updates_ids)\n INNER JOIN zkapp_account_update_body AS zaub ON zau.body_id=zaub.id\n INNER JOIN account_identifiers AS ai_update_body ON zaub.account_identifier_id=ai_update_body.id\n INNER JOIN public_keys AS pk_update_body ON ai_update_body.public_key_id=pk_update_body.id\n INNER JOIN tokens AS token_update_body ON ai_update_body.token_id=token_update_body.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=zc.hash\n OR $2 IS NULL\n )\n AND (\n (\n (\n (\n $4=token_update_body.value\n AND (\n $3=pk_update_body.value\n OR $3=pk_fee_payer.value\n )\n )\n )\n AND $3 IS NOT NULL\n AND $4 IS NOT NULL\n )\n OR (\n (\n $3=pk_fee_payer.value\n OR $3=pk_update_body.value\n )\n AND $3 IS NOT NULL\n AND $4 IS NULL\n )\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=bzc.status\n OR $5 IS NULL\n )\n AND (\n $6=bzc.status\n OR $6 IS NULL\n )\n AND (\n (\n $7=pk_fee_payer.value\n OR $7=pk_update_body.value\n )\n OR $7 IS NULL\n )\n ),\n zkapp_commands_ids AS (\n SELECT DISTINCT\n id,\n block_id,\n sequence_no\n FROM\n zkapp_commands_info\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n zkapp_commands_ids\n )\nSELECT\n zc.*,\n id_count.total_count\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n zkapp_commands_ids\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS ids\n INNER JOIN zkapp_commands_info AS zc ON ids.id=zc.id\n AND ids.block_id=zc.block_id\n AND ids.sequence_no=zc.sequence_no\nORDER BY\n ids.block_id,\n ids.id,\n ids.sequence_no,\n zc.balance_change\n", "describe": { "columns": [ { @@ -152,5 +152,5 @@ null ] }, - "hash": "411a992540d9c8a1eaa3461adc67005bb4515d21a064c1ad13ab9746e23763da" + "hash": "a70a673e1e6cd9d6f1814a386007cbff5254627d58df0e00e72d32ef0fb35b8e" } diff --git a/.sqlx/query-32fb4070f630d7d577d972a59c44a13c3924c0e6d1cf502cdb368140b5a94b39.json b/.sqlx/query-d51a4688ddcf1114e8d17384444a441e26c3d930957684466f24c34c48cca8c8.json similarity index 70% rename from .sqlx/query-32fb4070f630d7d577d972a59c44a13c3924c0e6d1cf502cdb368140b5a94b39.json rename to .sqlx/query-d51a4688ddcf1114e8d17384444a441e26c3d930957684466f24c34c48cca8c8.json index 129bf6e..0b2813a 100644 --- a/.sqlx/query-32fb4070f630d7d577d972a59c44a13c3924c0e6d1cf502cdb368140b5a94b39.json +++ b/.sqlx/query-d51a4688ddcf1114e8d17384444a441e26c3d930957684466f24c34c48cca8c8.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n user_command_info AS (\n SELECT DISTINCT\n ON (\n buc.block_id,\n buc.user_command_id,\n buc.sequence_no\n ) u.id,\n u.command_type AS \"command_type: UserCommandType\",\n u.fee_payer_id,\n u.source_id,\n u.receiver_id,\n u.nonce,\n u.amount,\n u.fee,\n u.valid_until,\n u.memo,\n u.hash,\n buc.block_id,\n buc.sequence_no,\n buc.status AS \"status: TransactionStatus\",\n buc.failure_reason,\n b.state_hash,\n b.chain_status AS \"chain_status: ChainStatus\",\n b.height\n FROM\n user_commands AS u\n INNER JOIN blocks_user_commands AS buc ON u.id=buc.user_command_id\n INNER JOIN public_keys AS pk ON u.fee_payer_id=pk.id\n OR (\n buc.status='applied'\n AND (\n u.source_id=pk.id\n OR u.receiver_id=pk.id\n )\n )\n INNER JOIN blocks AS b ON buc.block_id=b.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=u.hash\n OR $2 IS NULL\n )\n AND (\n $3=pk.value\n AND $4=''\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=buc.status\n OR $5 IS NULL\n )\n AND (\n $6=buc.status\n OR $6 IS NULL\n )\n AND (\n $7=pk.value\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n user_command_info\n )\nSELECT\n u.*,\n id_count.total_count,\n pk_payer.value AS fee_payer,\n pk_source.value AS source,\n pk_receiver.value AS receiver,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n user_command_info\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS u\n INNER JOIN public_keys AS pk_payer ON u.fee_payer_id=pk_payer.id\n INNER JOIN public_keys AS pk_source ON u.source_id=pk_source.id\n INNER JOIN public_keys AS pk_receiver ON u.receiver_id=pk_receiver.id\n /* Account creation fees are attributed to the first successful command in the\n block that mentions the account with the following LEFT JOINs */\n LEFT JOIN account_identifiers AS ai_receiver ON u.receiver_id=ai_receiver.public_key_id\n LEFT JOIN accounts_created AS ac ON u.block_id=ac.block_id\n AND ai_receiver.id=ac.account_identifier_id\n AND u.\"status: TransactionStatus\"='applied'\n AND u.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n u.receiver_id=ic2.receiver_id\n AND bic2.block_id=u.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n u.receiver_id=uc2.receiver_id\n AND buc2.block_id=u.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n u.block_id,\n u.id,\n u.sequence_no\n", + "query": "WITH\n canonical_blocks AS (\n SELECT\n *\n FROM\n blocks\n WHERE\n chain_status='canonical'\n ),\n max_canonical_height AS (\n SELECT\n max(HEIGHT) AS max_height\n FROM\n canonical_blocks\n ),\n pending_blocks AS (\n SELECT\n b.*\n FROM\n blocks AS b,\n max_canonical_height AS m\n WHERE\n b.height>m.max_height\n AND b.chain_status='pending'\n ),\n blocks AS (\n SELECT\n *\n FROM\n canonical_blocks\n UNION ALL\n SELECT\n *\n FROM\n pending_blocks\n ),\n user_command_info AS (\n SELECT DISTINCT\n ON (\n buc.block_id,\n buc.user_command_id,\n buc.sequence_no\n ) u.id,\n u.command_type AS \"command_type: UserCommandType\",\n u.fee_payer_id,\n u.source_id,\n u.receiver_id,\n u.nonce,\n u.amount,\n u.fee,\n u.valid_until,\n u.memo,\n u.hash,\n buc.block_id,\n buc.sequence_no,\n buc.status AS \"status: TransactionStatus\",\n buc.failure_reason,\n b.state_hash,\n b.chain_status AS \"chain_status: ChainStatus\",\n b.height\n FROM\n user_commands AS u\n INNER JOIN blocks_user_commands AS buc ON u.id=buc.user_command_id\n INNER JOIN public_keys AS pk ON u.fee_payer_id=pk.id\n OR (\n buc.status='applied'\n AND (\n u.source_id=pk.id\n OR u.receiver_id=pk.id\n )\n )\n INNER JOIN blocks AS b ON buc.block_id=b.id\n WHERE\n (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=u.hash\n OR $2 IS NULL\n )\n AND (\n $3=pk.value\n OR $3 IS NULL\n )\n AND (\n $4=''\n OR $4 IS NULL\n )\n AND (\n $5=buc.status\n OR $5 IS NULL\n )\n AND (\n $6=buc.status\n OR $6 IS NULL\n )\n AND (\n $7=pk.value\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n user_command_info\n )\nSELECT\n u.*,\n id_count.total_count,\n pk_payer.value AS fee_payer,\n pk_source.value AS source,\n pk_receiver.value AS receiver,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n user_command_info\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS u\n INNER JOIN public_keys AS pk_payer ON u.fee_payer_id=pk_payer.id\n INNER JOIN public_keys AS pk_source ON u.source_id=pk_source.id\n INNER JOIN public_keys AS pk_receiver ON u.receiver_id=pk_receiver.id\n /* Account creation fees are attributed to the first successful command in the\n block that mentions the account with the following LEFT JOINs */\n LEFT JOIN account_identifiers AS ai_receiver ON u.receiver_id=ai_receiver.public_key_id\n LEFT JOIN accounts_created AS ac ON u.block_id=ac.block_id\n AND ai_receiver.id=ac.account_identifier_id\n AND u.\"status: TransactionStatus\"='applied'\n AND u.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n u.receiver_id=ic2.receiver_id\n AND bic2.block_id=u.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n u.receiver_id=uc2.receiver_id\n AND buc2.block_id=u.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n u.block_id,\n u.id,\n u.sequence_no\n", "describe": { "columns": [ { @@ -209,5 +209,5 @@ false ] }, - "hash": "32fb4070f630d7d577d972a59c44a13c3924c0e6d1cf502cdb368140b5a94b39" + "hash": "d51a4688ddcf1114e8d17384444a441e26c3d930957684466f24c34c48cca8c8" } diff --git a/.sqlx/query-391efd59ae4d18800d3ed5e1850083a8b5aa335fbb27bd607e546e44e9544e92.json b/.sqlx/query-e1119d4ab6f8d5163ba39c3076791603c5e4e2df5f71c3e85537cf2f90069d4d.json similarity index 68% rename from .sqlx/query-391efd59ae4d18800d3ed5e1850083a8b5aa335fbb27bd607e546e44e9544e92.json rename to .sqlx/query-e1119d4ab6f8d5163ba39c3076791603c5e4e2df5f71c3e85537cf2f90069d4d.json index a884970..13d452d 100644 --- a/.sqlx/query-391efd59ae4d18800d3ed5e1850083a8b5aa335fbb27bd607e546e44e9544e92.json +++ b/.sqlx/query-e1119d4ab6f8d5163ba39c3076791603c5e4e2df5f71c3e85537cf2f90069d4d.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH\n user_command_info AS (\n SELECT DISTINCT\n ON (uca.block_id, uca.id, uca.sequence_no) uca.id,\n uca.command_type AS \"command_type: UserCommandType\",\n uca.fee_payer_id,\n uca.source_id,\n uca.receiver_id,\n uca.nonce,\n uca.amount,\n uca.fee,\n uca.valid_until,\n uca.memo,\n uca.hash,\n uca.block_id,\n uca.sequence_no,\n uca.status AS \"status: TransactionStatus\",\n uca.failure_reason,\n b.state_hash,\n b.chain_status AS \"chain_status: ChainStatus\",\n b.height\n FROM\n user_commands_aggregated AS uca\n INNER JOIN public_keys AS pk ON uca.fee_payer_id=pk.id\n OR (\n uca.status='applied'\n AND (\n uca.source_id=pk.id\n OR uca.receiver_id=pk.id\n )\n )\n INNER JOIN blocks AS b ON uca.block_id=b.id\n WHERE\n (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n AND (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=uca.hash\n OR $2 IS NULL\n )\n AND (\n $3=pk.value\n AND $4=''\n OR (\n $3 IS NULL\n AND $4 IS NULL\n )\n )\n AND (\n $5=uca.status\n OR $5 IS NULL\n )\n AND (\n $6=uca.status\n OR $6 IS NULL\n )\n AND (\n $7=pk.value\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n user_command_info\n )\nSELECT\n u.*,\n id_count.total_count,\n pk_payer.value AS fee_payer,\n pk_source.value AS source,\n pk_receiver.value AS receiver,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n user_command_info\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS u\n INNER JOIN public_keys AS pk_payer ON u.fee_payer_id=pk_payer.id\n INNER JOIN public_keys AS pk_source ON u.source_id=pk_source.id\n INNER JOIN public_keys AS pk_receiver ON u.receiver_id=pk_receiver.id\n /* Account creation fees are attributed to the first successful command in the\n block that mentions the account with the following LEFT JOINs */\n LEFT JOIN account_identifiers AS ai_receiver ON u.receiver_id=ai_receiver.public_key_id\n LEFT JOIN accounts_created AS ac ON u.block_id=ac.block_id\n AND ai_receiver.id=ac.account_identifier_id\n AND u.\"status: TransactionStatus\"='applied'\n AND u.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n u.receiver_id=ic2.receiver_id\n AND bic2.block_id=u.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n u.receiver_id=uc2.receiver_id\n AND buc2.block_id=u.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n u.block_id,\n u.id,\n u.sequence_no\n", + "query": "WITH\n user_command_info AS (\n SELECT DISTINCT\n ON (uca.block_id, uca.id, uca.sequence_no) uca.id,\n uca.command_type AS \"command_type: UserCommandType\",\n uca.fee_payer_id,\n uca.source_id,\n uca.receiver_id,\n uca.nonce,\n uca.amount,\n uca.fee,\n uca.valid_until,\n uca.memo,\n uca.hash,\n uca.block_id,\n uca.sequence_no,\n uca.status AS \"status: TransactionStatus\",\n uca.failure_reason,\n b.state_hash,\n b.chain_status AS \"chain_status: ChainStatus\",\n b.height\n FROM\n user_commands_aggregated AS uca\n INNER JOIN public_keys AS pk ON uca.fee_payer_id=pk.id\n OR (\n uca.status='applied'\n AND (\n uca.source_id=pk.id\n OR uca.receiver_id=pk.id\n )\n )\n INNER JOIN blocks AS b ON uca.block_id=b.id\n WHERE\n (\n b.chain_status='canonical'\n OR b.chain_status='pending'\n )\n AND (\n $1>=b.height\n OR $1 IS NULL\n )\n AND (\n $2=uca.hash\n OR $2 IS NULL\n )\n AND (\n $3=pk.value\n OR $3 IS NULL\n )\n AND (\n $4=''\n OR $4 IS NULL\n )\n AND (\n $5=uca.status\n OR $5 IS NULL\n )\n AND (\n $6=uca.status\n OR $6 IS NULL\n )\n AND (\n $7=pk.value\n OR $7 IS NULL\n )\n ),\n id_count AS (\n SELECT\n count(*) AS total_count\n FROM\n user_command_info\n )\nSELECT\n u.*,\n id_count.total_count,\n pk_payer.value AS fee_payer,\n pk_source.value AS source,\n pk_receiver.value AS receiver,\n ac.creation_fee AS \"creation_fee?\"\nFROM\n id_count,\n (\n SELECT\n *\n FROM\n user_command_info\n ORDER BY\n block_id,\n id,\n sequence_no\n LIMIT\n $8\n OFFSET\n $9\n ) AS u\n INNER JOIN public_keys AS pk_payer ON u.fee_payer_id=pk_payer.id\n INNER JOIN public_keys AS pk_source ON u.source_id=pk_source.id\n INNER JOIN public_keys AS pk_receiver ON u.receiver_id=pk_receiver.id\n /* Account creation fees are attributed to the first successful command in the\n block that mentions the account with the following LEFT JOINs */\n LEFT JOIN account_identifiers AS ai_receiver ON u.receiver_id=ai_receiver.public_key_id\n LEFT JOIN accounts_created AS ac ON u.block_id=ac.block_id\n AND ai_receiver.id=ac.account_identifier_id\n AND u.\"status: TransactionStatus\"='applied'\n AND u.sequence_no=(\n SELECT\n least(\n (\n SELECT\n min(bic2.sequence_no)\n FROM\n blocks_internal_commands AS bic2\n INNER JOIN internal_commands AS ic2 ON bic2.internal_command_id=ic2.id\n WHERE\n u.receiver_id=ic2.receiver_id\n AND bic2.block_id=u.block_id\n AND bic2.status='applied'\n ),\n (\n SELECT\n min(buc2.sequence_no)\n FROM\n blocks_user_commands AS buc2\n INNER JOIN user_commands AS uc2 ON buc2.user_command_id=uc2.id\n WHERE\n u.receiver_id=uc2.receiver_id\n AND buc2.block_id=u.block_id\n AND buc2.status='applied'\n )\n )\n )\nORDER BY\n u.block_id,\n u.id,\n u.sequence_no\n", "describe": { "columns": [ { @@ -209,5 +209,5 @@ false ] }, - "hash": "391efd59ae4d18800d3ed5e1850083a8b5aa335fbb27bd607e546e44e9544e92" + "hash": "e1119d4ab6f8d5163ba39c3076791603c5e4e2df5f71c3e85537cf2f90069d4d" }