Skip to content

Commit 6cec727

Browse files
authored
Move alice & faber "agents" to aries-vcx crate (#333)
* Remove cred_def_handle from faber * Remove credential_handle from faber * Remove presentation_handle from faber * Move schema to aries-vcx crate * Remove credential_handle from alice * Remove presentation_handle from alice * Remove schema_handle from faber * Remove schema and credential imports from devsetup_agent * Remove connection and disclosed_proof imports from devsetup_agent * Remove dependence on credential and connection from integration tests * Move test_download_messages_from_multiple_connections * Remove cred_def_handle from src/lib.rs * Remove connection_handle from src/lib.rs * Remove disclosed_proof from src/lib.rs * Remove proof from src/lib.rs * Remove issuer_credential from src/lib.rs * Remove credential from src/lib.rs * Move integration tests to aries-vcx crate Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>
1 parent e1f4157 commit 6cec727

File tree

38 files changed

+1914
-1772
lines changed

38 files changed

+1914
-1772
lines changed

.github/actions/codecov-integration-tests/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ runs:
3434
-e RUSTFLAGS='-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' \
3535
-e RUSTDOCFLAGS='-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' \
3636
${{ inputs.codecov-img-name }} \
37-
bash -c '(cd $HOME/aries-vcx/libvcx && \
38-
cargo test --features "pool_tests agency_v2" && \
37+
bash -c '(cd $HOME/aries-vcx/aries_vcx && \
38+
cargo test --features "pool_tests agency_pool_tests agency_v2" && \
3939
grcov ../target/debug/ -s . -t lcov --llvm --branch --ignore-not-existing -o ../target/debug/coverage.lcov)'
4040
docker_id=$(docker ps -a | grep libvcx-codecov-integration | grep Exited | tail -n 1 | cut -d ' ' -f 1)
4141
docker_image_id=$(docker images | grep codecov | perl -pe 's/\s+/ /g' | cut -d ' ' -f 3)

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,9 +522,9 @@ jobs:
522522
set -x
523523
docker run --rm -i --name libvcx --network host -e X86_64_UNKNOWN_LINUX_MUSL_OPENSSL_NO_VENDOR=true $DOCKER_IMG_NAME_LIBVCX \
524524
bash -c '(cd $HOME/libvcx && \
525-
RUST_TEST_THREADS=1 TEST_POOL_IP=127.0.0.1 cargo test --release --features "pool_tests agency_v2" && \
525+
RUST_TEST_THREADS=1 TEST_POOL_IP=127.0.0.1 cargo test --release --features "pool_tests" && \
526526
cd $HOME/aries_vcx && \
527-
RUST_TEST_THREADS=1 TEST_POOL_IP=127.0.0.1 cargo test --release --features "pool_tests" )'
527+
RUST_TEST_THREADS=1 TEST_POOL_IP=127.0.0.1 cargo test --release --features "pool_tests agency_v2" )'
528528
529529
test-libvcx-pgsql-integration:
530530
runs-on: ubuntu-latest
@@ -641,7 +641,7 @@ jobs:
641641
run: |
642642
set -x
643643
docker run --rm -i --name libvcx --network host -e X86_64_UNKNOWN_LINUX_MUSL_OPENSSL_NO_VENDOR=true $DOCKER_IMG_NAME_LIBVCX \
644-
bash -c '(cd $HOME/libvcx && \
644+
bash -c '(cd $HOME/aries_vcx && \
645645
cargo --version && \
646646
rustc --version && \
647647
RUST_TEST_THREADS=1 TEST_POOL_IP=127.0.0.1 cargo test --release --features "agency_pool_tests")'

aries_vcx/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ path = "src/lib.rs"
1313

1414
[features]
1515
pool_tests = []
16+
agency_pool_tests = []
17+
agency_v2 = []
1618
general_test = []
1719
fatal_warnings = []
1820
warnlog_fetched_messages = []

aries_vcx/src/handlers/issuance/credential_def/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub struct RevocationRegistry {
2020
rev_reg_delta_payment_txn: Option<PaymentTxn>,
2121
}
2222

23-
#[derive(Clone, Deserialize, Debug, Serialize, PartialEq)]
23+
#[derive(Clone, Deserialize, Debug, Serialize, PartialEq, Default)]
2424
pub struct CredentialDef {
2525
pub id: String,
2626
tag: String,

aries_vcx/src/handlers/issuance/holder/holder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::handlers::connection::connection::Connection;
77
use crate::messages::issuance::credential_offer::CredentialOffer;
88
use crate::error::prelude::*;
99

10-
#[derive(Serialize, Deserialize, Debug, Clone)]
10+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
1111
pub struct Holder {
1212
holder_sm: HolderSM
1313
}
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
11
pub mod holder;
22
mod state_machine;
3-
mod states;
3+
mod states;
4+
5+
use crate::messages::a2a::A2AMessage;
6+
use crate::handlers::connection::connection::Connection;
7+
use crate::error::prelude::*;
8+
9+
pub fn get_credential_offer_messages(connection: &Connection) -> VcxResult<String> {
10+
let credential_offers: Vec<A2AMessage> = connection.get_messages()?
11+
.into_iter()
12+
.filter_map(|(_, a2a_message)| {
13+
match a2a_message {
14+
A2AMessage::CredentialOffer(_) => Some(a2a_message),
15+
_ => None
16+
}
17+
})
18+
.collect();
19+
20+
Ok(json!(credential_offers).to_string())
21+
}

aries_vcx/src/handlers/issuance/holder/state_machine.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,19 @@ pub enum HolderFullState {
2222
Finished(FinishedHolderState),
2323
}
2424

25-
#[derive(Serialize, Deserialize, Debug, Clone)]
25+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
2626
pub struct HolderSM {
2727
state: HolderFullState,
2828
source_id: String,
2929
thread_id: String,
3030
}
3131

32+
impl Default for HolderFullState {
33+
fn default() -> Self {
34+
Self::OfferReceived(OfferReceivedState::default())
35+
}
36+
}
37+
3238
impl HolderSM {
3339
pub fn new(offer: CredentialOffer, source_id: String) -> Self {
3440
HolderSM {

aries_vcx/src/handlers/issuance/holder/states/offer_received.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::messages::status::Status;
77
use crate::handlers::issuance::holder::state_machine::parse_cred_def_id_from_cred_offer;
88
use crate::libindy::utils::anoncreds::get_cred_def_json;
99

10-
#[derive(Serialize, Deserialize, Debug, Clone)]
10+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
1111
pub struct OfferReceivedState {
1212
pub offer: CredentialOffer
1313
}

aries_vcx/src/handlers/issuance/issuer/issuer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::messages::a2a::A2AMessage;
66
use crate::handlers::connection::connection::Connection;
77
use crate::error::prelude::*;
88

9-
#[derive(Serialize, Deserialize, Debug, Clone)]
9+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
1010
pub struct Issuer {
1111
issuer_sm: IssuerSM
1212
}

aries_vcx/src/handlers/issuance/issuer/state_machine.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ impl IssuerFullState {
4747
}
4848
}
4949

50-
#[derive(Serialize, Deserialize, Debug, Clone)]
50+
impl Default for IssuerFullState {
51+
fn default() -> Self {
52+
Self::Initial(InitialState::default())
53+
}
54+
}
55+
56+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
5157
pub struct IssuerSM {
5258
state: IssuerFullState,
5359
source_id: String,

aries_vcx/src/handlers/issuance/issuer/states/initial.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::handlers::issuance::issuer::states::offer_sent::OfferSentState;
33
use crate::messages::a2a::MessageId;
44
use crate::messages::status::Status;
55

6-
#[derive(Serialize, Deserialize, Debug, Clone)]
6+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
77
pub struct InitialState {
88
pub cred_def_id: String,
99
pub credential_json: String,

aries_vcx/src/handlers/issuance/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ pub mod issuer;
22
pub mod holder;
33
pub mod messages;
44
pub mod credential_def;
5+
pub mod schema;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod schema;
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
use crate::handlers::issuance::credential_def::PublicEntityStateType;
2+
use crate::error::prelude::*;
3+
use crate::libindy::utils::anoncreds;
4+
use crate::libindy::utils::payments::PaymentTxn;
5+
use crate::utils::constants::DEFAULT_SERIALIZE_VERSION;
6+
use crate::utils::serialization::ObjectWithVersion;
7+
8+
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
9+
pub struct SchemaData {
10+
pub name: String,
11+
pub version: String,
12+
#[serde(rename = "attrNames")]
13+
pub attr_names: Vec<String>,
14+
}
15+
16+
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Default)]
17+
pub struct Schema {
18+
pub data: Vec<String>,
19+
pub version: String,
20+
pub schema_id: String,
21+
pub name: String,
22+
pub source_id: String,
23+
pub payment_txn: Option<PaymentTxn>,
24+
#[serde(default)]
25+
pub state: PublicEntityStateType,
26+
}
27+
28+
impl Schema {
29+
pub fn get_source_id(&self) -> &String { &self.source_id }
30+
31+
pub fn get_schema_id(&self) -> &String { &self.schema_id }
32+
33+
pub fn get_payment_txn(&self) -> VcxResult<PaymentTxn> {
34+
trace!("Schema::get_payment_txn >>>");
35+
self.payment_txn.clone()
36+
.ok_or(VcxError::from(VcxErrorKind::NoPaymentInformation))
37+
}
38+
39+
pub fn to_string(&self) -> VcxResult<String> {
40+
ObjectWithVersion::new(DEFAULT_SERIALIZE_VERSION, self.to_owned())
41+
.serialize()
42+
.map_err(|err| err.into())
43+
.map_err(|err: VcxError| err.extend("Cannot serialize Schema"))
44+
}
45+
46+
pub fn from_str(data: &str) -> VcxResult<Schema> {
47+
ObjectWithVersion::deserialize(data)
48+
.map(|obj: ObjectWithVersion<Schema>| obj.data)
49+
.map_err(|err| err.into())
50+
.map_err(|err: VcxError| err.extend("Cannot deserialize Schema"))
51+
}
52+
53+
pub fn update_state(&mut self) -> VcxResult<u32> {
54+
if anoncreds::get_schema_json(&self.schema_id).is_ok() {
55+
self.state = PublicEntityStateType::Published
56+
}
57+
Ok(self.state as u32)
58+
}
59+
60+
pub fn get_state(&self) -> u32 { self.state as u32 }
61+
}

aries_vcx/src/handlers/proof_presentation/prover/mod.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,21 @@ pub mod prover;
22
mod state_machine;
33
mod messages;
44
mod states;
5+
6+
use crate::messages::a2a::A2AMessage;
7+
use crate::handlers::connection::connection::Connection;
8+
use crate::error::prelude::*;
9+
10+
pub fn get_proof_request_messages(connection: &Connection) -> VcxResult<String> {
11+
let presentation_requests: Vec<A2AMessage> = connection.get_messages()?
12+
.into_iter()
13+
.filter_map(|(_, message)| {
14+
match message {
15+
A2AMessage::PresentationRequest(_) => Some(message),
16+
_ => None
17+
}
18+
})
19+
.collect();
20+
21+
Ok(json!(presentation_requests).to_string())
22+
}

aries_vcx/src/handlers/proof_presentation/prover/prover.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use crate::messages::proof_presentation::presentation_request::PresentationReque
1010
use crate::error::prelude::*;
1111
use crate::libindy::utils::anoncreds;
1212

13-
#[derive(Serialize, Deserialize, Debug, Clone)]
13+
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
1414
pub struct Prover {
1515
prover_sm: ProverSM,
1616
}

aries_vcx/src/handlers/proof_presentation/prover/state_machine.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use crate::error::prelude::*;
1717

1818
/// A state machine that tracks the evolution of states for a Prover during
1919
/// the Present Proof protocol.
20-
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
20+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2121
pub struct ProverSM {
2222
source_id: String,
2323
thread_id: String,
@@ -45,6 +45,12 @@ pub enum ProverFullState {
4545
Finished(FinishedState),
4646
}
4747

48+
impl Default for ProverFullState {
49+
fn default() -> Self {
50+
Self::Initiated(InitialState::default())
51+
}
52+
}
53+
4854
impl ProverSM {
4955
pub fn find_message_to_handle(&self, messages: HashMap<String, A2AMessage>) -> Option<(String, A2AMessage)> {
5056
trace!("Prover::find_message_to_handle >>> messages: {:?}", messages);

aries_vcx/src/handlers/proof_presentation/prover/states/initial.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::messages::proof_presentation::presentation::Presentation;
66
use crate::messages::proof_presentation::presentation_request::PresentationRequest;
77
use crate::libindy::proofs::prover::prover::generate_indy_proof;
88

9-
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
9+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1010
pub struct InitialState {
1111
pub presentation_request: PresentationRequest,
1212
}

aries_vcx/src/handlers/proof_presentation/verifier/state_machine.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use crate::handlers::proof_presentation::verifier::states::initial::InitialState
1212
use crate::handlers::proof_presentation::verifier::states::presentation_request_sent::PresentationRequestSentState;
1313
use crate::handlers::proof_presentation::verifier::states::finished::FinishedState;
1414

15-
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
15+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1616
pub struct VerifierSM {
1717
source_id: String,
1818
state: VerifierFullState,
@@ -31,6 +31,12 @@ pub enum VerifierFullState {
3131
Finished(FinishedState),
3232
}
3333

34+
impl Default for VerifierFullState {
35+
fn default() -> Self {
36+
Self::Initiated(InitialState::default())
37+
}
38+
}
39+
3440
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
3541
pub enum RevocationStatus {
3642
Revoked,

aries_vcx/src/handlers/proof_presentation/verifier/states/initial.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::handlers::proof_presentation::verifier::states::presentation_request_sent::PresentationRequestSentState;
22
use crate::messages::proof_presentation::presentation_request::{PresentationRequest, PresentationRequestData};
33

4-
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
4+
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
55
pub struct InitialState {
66
pub presentation_request_data: PresentationRequestData
77
}

aries_vcx/src/handlers/proof_presentation/verifier/verifier.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::messages::a2a::A2AMessage;
66
use crate::messages::proof_presentation::presentation_request::*;
77
use std::collections::HashMap;
88

9-
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
9+
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
1010
pub struct Verifier {
1111
verifier_sm: VerifierSM
1212
}

aries_vcx/tests/pgwallet/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
pub(crate) mod constants;
2-
pub(crate) mod wallet_plugin_loader;
2+
pub(crate) mod wallet_plugin_loader;

0 commit comments

Comments
 (0)