diff --git a/db/migrations/004_transactions_binaries.sql b/db/migrations/004_transactions_binaries.sql index 45d6337..3d9bc38 100644 --- a/db/migrations/004_transactions_binaries.sql +++ b/db/migrations/004_transactions_binaries.sql @@ -1 +1 @@ -ALTER TABLE transactions ADD COLUMN binaries BYTEA[] +ALTER TABLE transactions ADD COLUMN blobs BYTEA[] diff --git a/src/db.rs b/src/db.rs index cb14b88..c53cb58 100644 --- a/src/db.rs +++ b/src/db.rs @@ -263,7 +263,7 @@ impl Database { value: U256, gas_limit: U256, priority: TransactionPriority, - binaries: Option>>, + blobs: Option>>, relayer_id: &str, ) -> eyre::Result<()> { let mut tx = self.pool.begin().await?; @@ -289,7 +289,7 @@ impl Database { sqlx::query( r#" - INSERT INTO transactions (id, tx_to, data, value, gas_limit, priority, relayer_id, nonce, binaries) + INSERT INTO transactions (id, tx_to, data, value, gas_limit, priority, relayer_id, nonce, blobs) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) "#, ) @@ -301,7 +301,7 @@ impl Database { .bind(priority) .bind(relayer_id) .bind(nonce) - .bind(binaries.map(|b| b)) + .bind(blobs) .execute(tx.as_mut()) .await?; @@ -314,7 +314,7 @@ impl Database { pub async fn get_unsent_txs(&self) -> eyre::Result> { Ok(sqlx::query_as( r#" - SELECT r.id as relayer_id, t.id, t.tx_to, t.data, t.value, t.gas_limit, t.priority, t.nonce, t.binaries, r.key_id, r.chain_id + SELECT r.id as relayer_id, t.id, t.tx_to, t.data, t.value, t.gas_limit, t.priority, t.nonce, t.blobs, r.key_id, r.chain_id FROM transactions t LEFT JOIN sent_transactions s ON (t.id = s.tx_id) INNER JOIN relayers r ON (t.relayer_id = r.id) @@ -765,7 +765,7 @@ impl Database { Ok(sqlx::query_as( r#" SELECT r.id as relayer_id, t.id, t.tx_to, t.data, t.value, t.gas_limit, t.nonce, - t.binaries, r.key_id, r.chain_id, + t.blobs, r.key_id, r.chain_id, s.initial_max_fee_per_gas, s.initial_max_priority_fee_per_gas, s.escalation_count FROM transactions t JOIN sent_transactions s ON t.id = s.tx_id @@ -849,7 +849,7 @@ impl Database { Ok(sqlx::query_as( r#" SELECT t.id as tx_id, t.tx_to as to, t.data, t.value, t.gas_limit, t.nonce, - t.binaries, h.tx_hash, s.status + t.blobs, h.tx_hash, s.status FROM transactions t LEFT JOIN sent_transactions s ON t.id = s.tx_id LEFT JOIN tx_hashes h ON s.valid_tx_hash = h.tx_hash @@ -875,7 +875,7 @@ impl Database { Ok(sqlx::query_as( r#" SELECT t.id as tx_id, t.tx_to as to, t.data, t.value, t.gas_limit, t.nonce, - t. binaries, h.tx_hash, s.status + t. blobs, h.tx_hash, s.status FROM transactions t LEFT JOIN sent_transactions s ON t.id = s.tx_id LEFT JOIN tx_hashes h ON s.valid_tx_hash = h.tx_hash @@ -1407,13 +1407,13 @@ mod tests { let value = U256::from(0); let gas_limit = U256::from(0); let priority = TransactionPriority::Regular; - let binaries = None; + let blobs = None; let tx = db.read_tx(tx_id).await?; assert!(tx.is_none(), "Tx has not been sent yet"); db.create_transaction( - tx_id, to, data, value, gas_limit, priority, binaries, relayer_id, + tx_id, to, data, value, gas_limit, priority, blobs, relayer_id, ) .await?; @@ -1426,7 +1426,7 @@ mod tests { assert_eq!(tx.gas_limit.0, gas_limit); assert_eq!(tx.nonce, 0); assert_eq!(tx.tx_hash, None); - assert_eq!(tx.binaries, None); + assert_eq!(tx.blobs, None); let unsent_txs = db.read_txs(relayer_id, None).await?; assert_eq!(unsent_txs.len(), 1, "1 unsent tx"); diff --git a/src/db/data.rs b/src/db/data.rs index 50f1e94..8720a6a 100644 --- a/src/db/data.rs +++ b/src/db/data.rs @@ -19,7 +19,7 @@ pub struct UnsentTx { pub priority: TransactionPriority, #[sqlx(try_from = "i64")] pub nonce: u64, - pub binaries: Option>>, + pub blobs: Option>>, pub key_id: String, #[sqlx(try_from = "i64")] pub chain_id: u64, @@ -35,7 +35,7 @@ pub struct TxForEscalation { pub gas_limit: U256Wrapper, #[sqlx(try_from = "i64")] pub nonce: u64, - pub binaries: Option>>, + pub blobs: Option>>, pub key_id: String, #[sqlx(try_from = "i64")] pub chain_id: u64, @@ -54,7 +54,7 @@ pub struct ReadTxData { pub gas_limit: U256Wrapper, #[sqlx(try_from = "i64")] pub nonce: u64, - pub binaries: Option>>, + pub blobs: Option>>, // Sent tx data pub tx_hash: Option, diff --git a/src/serde_utils/base64_binary.rs b/src/serde_utils/base64_binary.rs index e4098b9..c8c42a4 100644 --- a/src/serde_utils/base64_binary.rs +++ b/src/serde_utils/base64_binary.rs @@ -3,15 +3,15 @@ use base64::Engine as _; use serde::Deserialize; pub fn serialize( - binaries: &Option>>, + blobs: &Option>>, serializer: S, ) -> Result where S: serde::Serializer, { - match binaries { - Some(binaries) => { - let base64_vec: Vec = binaries + match blobs { + Some(blobs) => { + let base64_vec: Vec = blobs .iter() .map(|binary| general_purpose::STANDARD.encode(binary)) .collect(); diff --git a/src/server/routes/transaction.rs b/src/server/routes/transaction.rs index 020737a..fef6d5e 100644 --- a/src/server/routes/transaction.rs +++ b/src/server/routes/transaction.rs @@ -26,7 +26,7 @@ pub struct SendTxRequest { #[serde(default)] pub tx_id: Option, #[serde(default, with = "crate::serde_utils::base64_binary")] - pub binaries: Option>>, + pub blobs: Option>>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -118,7 +118,7 @@ pub async fn send_tx( req.value, req.gas_limit, req.priority, - req.binaries, + req.blobs, api_token.relayer_id(), ) .await?; diff --git a/tests/send_too_many_txs.rs b/tests/send_too_many_txs.rs index 727dc46..d93b3fa 100644 --- a/tests/send_too_many_txs.rs +++ b/tests/send_too_many_txs.rs @@ -59,7 +59,7 @@ async fn send_too_many_txs() -> eyre::Result<()> { gas_limit: U256::from(21_000), priority: TransactionPriority::Regular, tx_id: None, - binaries: None, + blobs: None, }, ) .await?; @@ -76,7 +76,7 @@ async fn send_too_many_txs() -> eyre::Result<()> { gas_limit: U256::from(21_000), priority: TransactionPriority::Regular, tx_id: None, - binaries: None, + blobs: None, }, ) .await; @@ -104,7 +104,7 @@ async fn send_too_many_txs() -> eyre::Result<()> { gas_limit: U256::from(21_000), priority: TransactionPriority::Regular, tx_id: None, - binaries: None, + blobs: None, }, ) .await?;