diff --git a/.sqlx/query-7a7fb81674a67e9b9dbf82a318d60dd78565765831dc4dd84777dfb751736ce6.json b/.sqlx/query-7a7fb81674a67e9b9dbf82a318d60dd78565765831dc4dd84777dfb751736ce6.json new file mode 100644 index 000000000..e6bca75ed --- /dev/null +++ b/.sqlx/query-7a7fb81674a67e9b9dbf82a318d60dd78565765831dc4dd84777dfb751736ce6.json @@ -0,0 +1,30 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n MAX(id),\n SUM(value)\n FROM\n scalar_tap_receipts\n WHERE\n allocation_id = $1\n AND signer_address IN (SELECT unnest($2::text[]))\n AND timestamp_ns > $3\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "max", + "type_info": "Int8" + }, + { + "ordinal": 1, + "name": "sum", + "type_info": "Numeric" + } + ], + "parameters": { + "Left": [ + "Bpchar", + "TextArray", + "Numeric" + ] + }, + "nullable": [ + null, + null + ] + }, + "hash": "7a7fb81674a67e9b9dbf82a318d60dd78565765831dc4dd84777dfb751736ce6" +} diff --git a/.sqlx/query-dbdcb666214a40762607e872c680bba5c3d01bc2106abe5839f1801d1683b8f6.json b/.sqlx/query-dbdcb666214a40762607e872c680bba5c3d01bc2106abe5839f1801d1683b8f6.json deleted file mode 100644 index d9f97b776..000000000 --- a/.sqlx/query-dbdcb666214a40762607e872c680bba5c3d01bc2106abe5839f1801d1683b8f6.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n WITH rav AS (\n SELECT\n timestamp_ns\n FROM\n scalar_tap_ravs\n WHERE\n allocation_id = $1\n AND sender_address = $2\n )\n SELECT\n MAX(id),\n SUM(value)\n FROM\n scalar_tap_receipts\n WHERE\n allocation_id = $1\n AND signer_address IN (SELECT unnest($3::text[]))\n AND CASE WHEN (\n SELECT\n timestamp_ns :: NUMERIC\n FROM\n rav\n ) IS NOT NULL THEN timestamp_ns > (\n SELECT\n timestamp_ns :: NUMERIC\n FROM\n rav\n ) ELSE TRUE END\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "max", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "sum", - "type_info": "Numeric" - } - ], - "parameters": { - "Left": [ - "Bpchar", - "Bpchar", - "TextArray" - ] - }, - "nullable": [ - null, - null - ] - }, - "hash": "dbdcb666214a40762607e872c680bba5c3d01bc2106abe5839f1801d1683b8f6" -} diff --git a/tap-agent/src/agent/sender_allocation.rs b/tap-agent/src/agent/sender_allocation.rs index f661608a4..1b90951d5 100644 --- a/tap-agent/src/agent/sender_allocation.rs +++ b/tap-agent/src/agent/sender_allocation.rs @@ -355,18 +355,8 @@ impl SenderAllocationState { let signers = signers_trimmed(&self.escrow_accounts, self.sender).await?; - // TODO: Get `rav.timestamp_ns` from the TAP Manager's RAV storage adapter instead? let res = sqlx::query!( r#" - WITH rav AS ( - SELECT - timestamp_ns - FROM - scalar_tap_ravs - WHERE - allocation_id = $1 - AND sender_address = $2 - ) SELECT MAX(id), SUM(value) @@ -374,22 +364,17 @@ impl SenderAllocationState { scalar_tap_receipts WHERE allocation_id = $1 - AND signer_address IN (SELECT unnest($3::text[])) - AND CASE WHEN ( - SELECT - timestamp_ns :: NUMERIC - FROM - rav - ) IS NOT NULL THEN timestamp_ns > ( - SELECT - timestamp_ns :: NUMERIC - FROM - rav - ) ELSE TRUE END + AND signer_address IN (SELECT unnest($2::text[])) + AND timestamp_ns > $3 "#, self.allocation_id.encode_hex(), - self.sender.encode_hex(), - &signers + &signers, + BigDecimal::from( + self.latest_rav + .as_ref() + .map(|rav| rav.message.timestampNs) + .unwrap_or_default() + ), ) .fetch_one(&self.pgpool) .await?;