Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions catalyst-gateway/bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ repository.workspace = true
workspace = true

[dependencies]
cardano-chain-follower = { version = "0.0.18", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "cardano-chain-follower/v0.0.18" }
rbac-registration = { version = "0.0.14", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "rbac-registration/v0.0.14" }
cardano-chain-follower = { version = "0.0.19", git = "https://github.com/input-output-hk/catalyst-libs.git", branch = "feat/cardano-chain-follower-bump" }
rbac-registration = { version = "0.0.14", git = "https://github.com/input-output-hk/catalyst-libs.git", branch = "feat/rbac" }
catalyst-signed-doc = { version = "0.0.10", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "catalyst-signed-doc/v0.0.10" }
catalyst-signed-doc-v1 = { package = "catalyst-signed-doc", version = "0.0.4", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "catalyst-signed-doc/v.0.0.4" }
c509-certificate = { version = "0.0.3", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "c509-certificate-v0.0.3" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@ INSERT INTO rbac_registration (
txn_index,
txn_id,
prv_txn_id,
removed_stake_addresses,
purpose
) VALUES (
:catalyst_id,
:slot_no,
:txn_index,
:txn_id,
:prv_txn_id,
:removed_stake_addresses,
:purpose
);
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ use tracing::error;

use crate::{
db::{
index::queries::{PreparedQueries, SizedBatch},
index::{
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
session::CassandraSession,
},
types::{DbCatalystId, DbPublicKey, DbSlot},
},
settings::cassandra_db::EnvVars,
Expand Down Expand Up @@ -57,6 +60,16 @@ impl Params {
}
}

/// Executes prepared queries as a batch.
pub(crate) async fn execute_batch(
session: &Arc<CassandraSession>,
queries: Vec<Self>,
) -> FallibleQueryResults {
session
.execute_batch(PreparedQuery::CatalystIdForPublicKeyInsertQuery, queries)
.await
}

/// Prepares a batch of queries.
pub(crate) async fn prepare_batch(
session: &Arc<Session>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ use tracing::error;

use crate::{
db::{
index::queries::{PreparedQueries, SizedBatch},
index::{
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
session::CassandraSession,
},
types::{DbCatalystId, DbSlot, DbStakeAddress, DbTxnIndex},
},
settings::cassandra_db::EnvVars,
Expand Down Expand Up @@ -61,6 +64,23 @@ impl Params {
}
}

/// Executes prepared queries as a batch.
pub(crate) async fn execute_batch(
session: &Arc<CassandraSession>,
queries: Vec<Self>,
) -> FallibleQueryResults {
for q in &queries {
session
.caches()
.rbac_stake_address()
.insert(q.stake_address.clone().into(), q.catalyst_id.clone().into());
}

session
.execute_batch(PreparedQuery::CatalystIdForStakeAddressInsertQuery, queries)
.await
}

/// Prepare Batch of RBAC Registration Index Data Queries
pub(crate) async fn prepare_batch(
session: &Arc<Session>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ use tracing::error;

use crate::{
db::{
index::queries::{PreparedQueries, SizedBatch},
index::{
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
session::CassandraSession,
},
types::{DbCatalystId, DbSlot, DbTransactionId},
},
settings::cassandra_db::EnvVars,
Expand Down Expand Up @@ -56,6 +59,16 @@ impl Params {
}
}

/// Executes prepared queries as a batch.
pub(crate) async fn execute_batch(
session: &Arc<CassandraSession>,
queries: Vec<Self>,
) -> FallibleQueryResults {
session
.execute_batch(PreparedQuery::CatalystIdForTxnIdInsertQuery, queries)
.await
}

/// Prepares a Batch of RBAC Registration Index Data Queries.
pub(crate) async fn prepare_batch(
session: &Arc<Session>,
Expand Down
30 changes: 17 additions & 13 deletions catalyst-gateway/bin/src/db/index/block/rbac509/insert_rbac509.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
//! Insert RBAC 509 Registration Query.

use std::{collections::HashSet, fmt::Debug, sync::Arc};
use std::{fmt::Debug, sync::Arc};

use cardano_chain_follower::{Slot, StakeAddress, TxnIndex, hashes::TransactionId};
use cardano_chain_follower::{Slot, TxnIndex, hashes::TransactionId};
use catalyst_types::{catalyst_id::CatalystId, uuid::UuidV4};
use scylla::{SerializeRow, client::session::Session, value::MaybeUnset};
use tracing::error;

use crate::{
db::{
index::queries::{PreparedQueries, SizedBatch},
types::{DbCatalystId, DbSlot, DbStakeAddress, DbTransactionId, DbTxnIndex, DbUuidV4},
index::{
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
session::CassandraSession,
},
types::{DbCatalystId, DbSlot, DbTransactionId, DbTxnIndex, DbUuidV4},
},
settings::cassandra_db::EnvVars,
};
Expand All @@ -31,8 +34,6 @@ pub(crate) struct Params {
txn_id: DbTransactionId,
/// Hash of Previous Transaction. Is `None` for the first registration. 32 Bytes.
prv_txn_id: MaybeUnset<DbTransactionId>,
/// A set of removed stake addresses.
removed_stake_addresses: HashSet<DbStakeAddress>,
/// A registration purpose.
///
/// The value of purpose is `None` if the chain is modified by the registration
Expand All @@ -55,7 +56,6 @@ impl Debug for Params {
.field("slot_no", &self.slot_no)
.field("txn_index", &self.txn_index)
.field("prv_txn_id", &prv_txn_id)
.field("removed_stake_addresses", &self.removed_stake_addresses)
.field("purpose", &self.purpose)
.finish()
}
Expand All @@ -69,14 +69,9 @@ impl Params {
slot_no: Slot,
txn_index: TxnIndex,
prv_txn_id: Option<TransactionId>,
removed_stake_addresses: HashSet<StakeAddress>,
purpose: Option<UuidV4>,
) -> Self {
let prv_txn_id = prv_txn_id.map_or(MaybeUnset::Unset, |v| MaybeUnset::Set(v.into()));
let removed_stake_addresses = removed_stake_addresses
.into_iter()
.map(Into::into)
.collect();
let purpose = purpose.map_or(MaybeUnset::Unset, |v| MaybeUnset::Set(v.into()));

Self {
Expand All @@ -85,11 +80,20 @@ impl Params {
slot_no: slot_no.into(),
txn_index: txn_index.into(),
prv_txn_id,
removed_stake_addresses,
purpose,
}
}

/// Executes prepared queries as a batch.
pub(crate) async fn execute_batch(
session: &Arc<CassandraSession>,
queries: Vec<Self>,
) -> FallibleQueryResults {
session
.execute_batch(PreparedQuery::Rbac509InsertQuery, queries)
.await
}

/// Prepare Batch of RBAC Registration Index Data Queries
pub(crate) async fn prepare_batch(
session: &Arc<Session>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ use tracing::error;

use crate::{
db::{
index::queries::{PreparedQueries, SizedBatch},
index::{
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
session::CassandraSession,
},
types::{DbCatalystId, DbSlot, DbTransactionId, DbTxnIndex, DbUuidV4},
},
service::common::objects::generic::problem_report::ProblemReport,
Expand Down Expand Up @@ -65,6 +68,16 @@ impl Params {
}
}

/// Executes prepared queries as a batch.
pub(crate) async fn execute_batch(
session: &Arc<CassandraSession>,
queries: Vec<Self>,
) -> FallibleQueryResults {
session
.execute_batch(PreparedQuery::Rbac509InvalidInsertQuery, queries)
.await
}

/// Prepare Batch of RBAC Registration Index Data Queries
pub(crate) async fn prepare_batch(
session: &Arc<Session>,
Expand Down
Loading