adapt issued credential storage on API
This commit is contained in:
@@ -69,7 +69,7 @@ pub trait CoconutStorageManagerExt {
|
||||
bs58_partial_credential: String,
|
||||
bs58_signature: String,
|
||||
joined_private_commitments: String,
|
||||
joined_public_attributes: String,
|
||||
expiration_date: i64,
|
||||
) -> Result<i64, sqlx::Error>;
|
||||
|
||||
/// Attempts to retrieve issued credentials from the data store using provided ids.
|
||||
@@ -247,7 +247,7 @@ impl CoconutStorageManagerExt for StorageManager {
|
||||
sqlx::query_as!(
|
||||
IssuedCredential,
|
||||
r#"
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, joined_public_attributes
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, expiration_date as "expiration_date: i64"
|
||||
FROM issued_credential
|
||||
WHERE id = ?
|
||||
"#,
|
||||
@@ -269,7 +269,7 @@ impl CoconutStorageManagerExt for StorageManager {
|
||||
sqlx::query_as!(
|
||||
IssuedCredential,
|
||||
r#"
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, joined_public_attributes
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, expiration_date as "expiration_date: i64"
|
||||
FROM issued_credential
|
||||
WHERE tx_hash = ?
|
||||
"#,
|
||||
@@ -291,16 +291,16 @@ impl CoconutStorageManagerExt for StorageManager {
|
||||
bs58_partial_credential: String,
|
||||
bs58_signature: String,
|
||||
joined_private_commitments: String,
|
||||
joined_public_attributes: String,
|
||||
expiration_date: i64,
|
||||
) -> Result<i64, sqlx::Error> {
|
||||
let row_id = sqlx::query!(
|
||||
r#"
|
||||
INSERT INTO issued_credential
|
||||
(epoch_id, tx_hash, bs58_partial_credential, bs58_signature, joined_private_commitments, joined_public_attributes)
|
||||
(epoch_id, tx_hash, bs58_partial_credential, bs58_signature, joined_private_commitments, expiration_date)
|
||||
VALUES
|
||||
(?, ?, ?, ?, ?, ?)
|
||||
"#,
|
||||
epoch_id, tx_hash, bs58_partial_credential, bs58_signature, joined_private_commitments, joined_public_attributes
|
||||
epoch_id, tx_hash, bs58_partial_credential, bs58_signature, joined_private_commitments, expiration_date
|
||||
).execute(&self.connection_pool).await?.last_insert_rowid();
|
||||
|
||||
Ok(row_id)
|
||||
@@ -341,7 +341,7 @@ impl CoconutStorageManagerExt for StorageManager {
|
||||
sqlx::query_as!(
|
||||
IssuedCredential,
|
||||
r#"
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, joined_public_attributes
|
||||
SELECT id, epoch_id as "epoch_id: u32", tx_hash, bs58_partial_credential, bs58_signature,joined_private_commitments, expiration_date as "expiration_date: i64"
|
||||
FROM issued_credential
|
||||
WHERE id > ?
|
||||
ORDER BY id
|
||||
|
||||
@@ -8,6 +8,8 @@ use crate::support::storage::NymApiStorage;
|
||||
use nym_api_requests::coconut::models::Pagination;
|
||||
use nym_coconut::{Base58, BlindedSignature};
|
||||
use nym_coconut_dkg_common::types::EpochId;
|
||||
use nym_compact_ecash::utils::BlindedSignature;
|
||||
use nym_compact_ecash::Base58;
|
||||
use nym_crypto::asymmetric::identity;
|
||||
use nym_validator_client::nyxd::Hash;
|
||||
|
||||
@@ -52,7 +54,7 @@ pub trait CoconutStorageExt {
|
||||
partial_credential: &BlindedSignature,
|
||||
signature: identity::Signature,
|
||||
private_commitments: Vec<String>,
|
||||
public_attributes: Vec<String>,
|
||||
expiration_date: i64,
|
||||
) -> Result<i64, NymApiStorageError>;
|
||||
|
||||
async fn get_issued_credentials(
|
||||
@@ -122,7 +124,7 @@ impl CoconutStorageExt for NymApiStorage {
|
||||
partial_credential: &BlindedSignature,
|
||||
signature: identity::Signature,
|
||||
private_commitments: Vec<String>,
|
||||
public_attributes: Vec<String>,
|
||||
expiration_date: i64,
|
||||
) -> Result<i64, NymApiStorageError> {
|
||||
Ok(self
|
||||
.manager
|
||||
@@ -132,7 +134,7 @@ impl CoconutStorageExt for NymApiStorage {
|
||||
partial_credential.to_bs58(),
|
||||
signature.to_base58_string(),
|
||||
join_attributes(private_commitments),
|
||||
join_attributes(public_attributes),
|
||||
expiration_date,
|
||||
)
|
||||
.await?)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ use nym_api_requests::coconut::models::{
|
||||
IssuedCredentialBody as ApiIssuedCredentialInner,
|
||||
};
|
||||
use nym_api_requests::coconut::BlindedSignatureResponse;
|
||||
use nym_coconut::{Base58, BlindedSignature};
|
||||
use nym_compact_ecash::{utils::BlindedSignature, Base58};
|
||||
use sqlx::FromRow;
|
||||
use std::fmt::Display;
|
||||
|
||||
@@ -48,8 +48,7 @@ pub struct IssuedCredential {
|
||||
// i.e. "'attr1','attr2',..."
|
||||
pub joined_private_commitments: String,
|
||||
|
||||
// i.e. "'attr1','attr2',..."
|
||||
pub joined_public_attributes: String,
|
||||
pub expiration_date: i64,
|
||||
}
|
||||
|
||||
impl TryFrom<IssuedCredential> for ApiIssuedCredentialInner {
|
||||
@@ -70,7 +69,7 @@ impl TryFrom<IssuedCredential> for ApiIssuedCredentialInner {
|
||||
bs58_encoded_private_attributes_commitments: split_attributes(
|
||||
&value.joined_private_commitments,
|
||||
),
|
||||
public_attributes: split_attributes(&value.joined_public_attributes),
|
||||
expiration_date: value.expiration_date,
|
||||
},
|
||||
signature: value.bs58_signature.parse()?,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user