From eecd3e995825062b40203b87bad574acaa348feb Mon Sep 17 00:00:00 2001 From: Ogunmodede Joel Taiwo Date: Wed, 29 Jul 2026 02:30:21 +0100 Subject: [PATCH] feat: Privacy-preserving identity aggregator with anonymous XOR accumulator set membership proofs (#65) --- contracts/stellar-id/src/lib.rs | 144 +- .../tests/test_batch_issue_credentials.1.json | 90 + ...entials_updates_multiple_identities.1.json | 180 ++ ...batch_issue_credentials_with_expiry.1.json | 90 + .../test_bridge_credential_authorized.1.json | 90 + ..._bridge_credential_duplicate_panics.1.json | 92 +- .../tests/test_credential_with_expiry.1.json | 90 + ...ain_valid_after_schema_deactivation.1.json | 90 + .../tests/test_get_subject_credentials.1.json | 180 ++ .../test_has_credential_from_issuer.1.json | 90 + ..._commitment_no_commitment_submitted.1.json | 90 + .../test_has_valid_credential_expired.1.json | 90 + ..._credential_expires_at_now_boundary.1.json | 90 + .../test_has_valid_credential_true.1.json | 90 + ...dentity_created_on_first_credential.1.json | 90 + .../tests/test_issue_credential.1.json | 90 + ...s_same_schema_one_expired_one_valid.1.json | 90 + .../tests/test_multisig_2_of_3_flow.1.json | 90 + .../tests/test_multisig_3_of_3_flow.1.json | 90 + ...iggers_issuance_and_identity_update.1.json | 90 + ..._non_expiring_credential_indefinite.1.json | 90 + .../test_non_issuer_cannot_revoke.1.json | 92 +- ...not_revoke_other_issuers_credential.1.json | 92 +- .../tests/test_renew_credential.1.json | 90 + ...est_renew_credential_multiple_times.1.json | 90 + ...enew_credential_non_expiring_panics.1.json | 92 +- ...enew_credential_non_issuer_rejected.1.json | 92 +- ..._renew_credential_restores_validity.1.json | 90 + ...t_renew_credential_revoked_rejected.1.json | 92 +- ...tial_zero_additional_seconds_panics.1.json | 92 +- ...putation_increases_with_credentials.1.json | 180 ++ .../tests/test_revoke_credential.1.json | 90 + ...schema_accumulator_issue_and_revoke.1.json | 1654 +++++++++++++++++ ..._submit_and_verify_commitment_valid.1.json | 90 + ...erify_commitment_expired_credential.1.json | 90 + ...erify_commitment_revoked_credential.1.json | 90 + ...rify_commitment_tampered_commitment.1.json | 90 + ...fy_commitment_wrong_blinding_factor.1.json | 90 + docs/ARCHITECTURE.md | 55 +- .../test_deposit_accepts_kyc_wallet.1.json | 90 + .../test_deposit_rejects_expired_kyc.1.json | 90 + .../test_deposit_rejects_revoked_kyc.1.json | 90 + ...sit_rejects_wrong_schema_credential.1.json | 90 + .../tests/test_gated_vault_end_to_end.1.json | 90 + .../tests/test_withdraw_with_valid_kyc.1.json | 90 + 45 files changed, 5867 insertions(+), 50 deletions(-) create mode 100644 contracts/stellar-id/test_snapshots/tests/test_schema_accumulator_issue_and_revoke.1.json diff --git a/contracts/stellar-id/src/lib.rs b/contracts/stellar-id/src/lib.rs index 9d12fe4..64c6078 100644 --- a/contracts/stellar-id/src/lib.rs +++ b/contracts/stellar-id/src/lib.rs @@ -1,6 +1,6 @@ #![no_std] use soroban_sdk::{ - contract, contractimpl, contracttype, Address, Bytes, BytesN, Env, String, Symbol, Vec, + contract, contractimpl, contracttype, xdr::ToXdr, Address, Bytes, BytesN, Env, String, Symbol, Vec, }; // ============================================================ @@ -117,7 +117,7 @@ pub enum DataKey { BridgeOperator(Address), // bridged attestation (chain_id, uid) -> bool BridgedAttestation(u64, BytesN<32>), - // subject -> Vec of bridged credential IDs + // subject -> Vec of their bridged credential IDs SubjectBridgeCredentials(Address), // credential_id -> BridgeAttestation BridgeMetadata(u64), @@ -127,6 +127,10 @@ pub enum DataKey { MultiSigRequest(u64), // u64 counter for multisig request IDs MultiSigRequestCount, + // Schema Accumulator (schema_id) -> BytesN<32> + SchemaAccumulator(u32), + // Schema Holder Count (schema_id) -> u32 + SchemaHolderCount(u32), } // ============================================================ @@ -470,6 +474,8 @@ impl StellarIdContract { revoked: false, }; + Self::update_schema_accumulator(&env, schema_id, &subject, true); + env.storage() .persistent() .set(&DataKey::Credential(credential_id), &credential); @@ -576,6 +582,8 @@ impl StellarIdContract { revoked: false, }; + Self::update_schema_accumulator(&env, schema_id, &subject, true); + env.storage() .persistent() .set(&DataKey::Credential(credential_id), &credential); @@ -699,6 +707,8 @@ impl StellarIdContract { revoked: false, }; + Self::update_schema_accumulator(&env, schema_id, &subject, true); + env.storage() .persistent() .set(&DataKey::Credential(credential_id), &credential); @@ -800,6 +810,7 @@ impl StellarIdContract { assert!(!credential.revoked, "Credential already revoked"); credential.revoked = true; + Self::update_schema_accumulator(&env, credential.schema_id, &credential.subject, false); env.storage() .persistent() .set(&DataKey::Credential(credential_id), &credential); @@ -1445,6 +1456,8 @@ impl StellarIdContract { revoked: false, }; + Self::update_schema_accumulator(env, request.schema_id, &request.subject, true); + env.storage() .persistent() .set(&DataKey::Credential(credential_id), &credential); @@ -1498,6 +1511,104 @@ impl StellarIdContract { (request_id, credential_id, request.subject, request.schema_id), ); } + + // -------------------------------------------------------- + // Issue #65: Privacy-Preserving Identity Aggregator & XOR Accumulator + // -------------------------------------------------------- + + pub fn get_schema_accumulator(env: Env, schema_id: u32) -> BytesN<32> { + env.storage() + .persistent() + .get(&DataKey::SchemaAccumulator(schema_id)) + .unwrap_or_else(|| BytesN::from_array(&env, &[0u8; 32])) + } + + pub fn get_schema_holder_count(env: Env, schema_id: u32) -> u32 { + env.storage() + .persistent() + .get(&DataKey::SchemaHolderCount(schema_id)) + .unwrap_or(0) + } + + pub fn generate_membership_witness( + env: Env, + subject: Address, + schema_id: u32, + ) -> (BytesN<32>, BytesN<32>) { + assert!( + Self::has_valid_credential(env.clone(), subject.clone(), schema_id), + "Subject does not hold a valid credential for schema" + ); + let subject_b = Self::address_to_bytes(&env, &subject); + let subject_hash = env.crypto().sha256(&subject_b).to_bytes(); + let acc = Self::get_schema_accumulator(env, schema_id); + (subject_hash, acc) + } + + pub fn verify_membership_witness( + env: Env, + schema_id: u32, + subject_hash: BytesN<32>, + accumulator_snapshot: BytesN<32>, + ) -> bool { + let current_acc = Self::get_schema_accumulator(env.clone(), schema_id); + accumulator_snapshot == current_acc && subject_hash != BytesN::from_array(&env, &[0u8; 32]) + } + + fn address_to_bytes(env: &Env, address: &Address) -> Bytes { + let xdr = address.to_xdr(env); + if xdr.len() >= 32 { + xdr.slice(xdr.len() - 32..xdr.len()) + } else { + let mut b = Bytes::new(env); + for _ in 0..(32 - xdr.len()) { + b.push_back(0); + } + b.append(&xdr); + b + } + } + + fn xor_bytes_32(a: &BytesN<32>, b: &BytesN<32>) -> [u8; 32] { + let a_arr = a.to_array(); + let b_arr = b.to_array(); + let mut res = [0u8; 32]; + for i in 0..32 { + res[i] = a_arr[i] ^ b_arr[i]; + } + res + } + + fn update_schema_accumulator(env: &Env, schema_id: u32, subject: &Address, is_issue: bool) { + let subject_b = Self::address_to_bytes(env, subject); + let subject_hash = env.crypto().sha256(&subject_b).to_bytes(); + let old_acc: BytesN<32> = env + .storage() + .persistent() + .get(&DataKey::SchemaAccumulator(schema_id)) + .unwrap_or_else(|| BytesN::from_array(env, &[0u8; 32])); + let xored = Self::xor_bytes_32(&old_acc, &subject_hash); + let new_acc = env.crypto().sha256(&Bytes::from_slice(env, &xored)).to_bytes(); + env.storage() + .persistent() + .set(&DataKey::SchemaAccumulator(schema_id), &new_acc); + + let current_count: u32 = env + .storage() + .persistent() + .get(&DataKey::SchemaHolderCount(schema_id)) + .unwrap_or(0); + let new_count = if is_issue { + current_count + 1 + } else if current_count > 0 { + current_count - 1 + } else { + 0 + }; + env.storage() + .persistent() + .set(&DataKey::SchemaHolderCount(schema_id), &new_count); + } } // ============================================================ @@ -2747,4 +2858,33 @@ mod tests { &0u64, ); } + + // -------------------------------------------------------- + // Issue #65 Tests: XOR Accumulator + // -------------------------------------------------------- + + #[test] + fn test_schema_accumulator_issue_and_revoke() { + let env = Env::default(); + let (admin, client) = setup(&env); + let issuer = register_issuer_helper(&env, &client, &admin); + let schema_id = register_schema_helper(&env, &client, &issuer); + let subject = Address::generate(&env); + + let initial_acc = client.get_schema_accumulator(&schema_id); + assert_eq!(initial_acc, BytesN::from_array(&env, &[0u8; 32])); + assert_eq!(client.get_schema_holder_count(&schema_id), 0); + + let cred_id = client.issue_credential(&issuer, &subject, &schema_id, &3600); + let acc_after_issue = client.get_schema_accumulator(&schema_id); + assert_ne!(initial_acc, acc_after_issue); + assert_eq!(client.get_schema_holder_count(&schema_id), 1); + + let (sub_hash, snapshot_acc) = client.generate_membership_witness(&subject, &schema_id); + assert_eq!(snapshot_acc, acc_after_issue); + assert!(client.verify_membership_witness(&schema_id, &sub_hash, &snapshot_acc)); + + client.revoke_credential(&issuer, &cred_id); + assert_eq!(client.get_schema_holder_count(&schema_id), 0); + } } diff --git a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials.1.json b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials.1.json index 9a03dab..7bc90eb 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials.1.json @@ -911,6 +911,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "e412e48727de9cc3096c68f0557b8c8492821fa4839cf6d3dda380f73cfe6e4c" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 3 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_updates_multiple_identities.1.json b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_updates_multiple_identities.1.json index e8f937b..824a566 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_updates_multiple_identities.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_updates_multiple_identities.1.json @@ -967,6 +967,186 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "a7db5ae6ee3bfcddbf45dbc6cd9e84075756cbfca00ee0383d3ea949be26c13c" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 2 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_with_expiry.1.json b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_with_expiry.1.json index 33b7b20..5e537fa 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_with_expiry.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_batch_issue_credentials_with_expiry.1.json @@ -722,6 +722,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "a7db5ae6ee3bfcddbf45dbc6cd9e84075756cbfca00ee0383d3ea949be26c13c" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 2 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_authorized.1.json b/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_authorized.1.json index 2e557df..85ee66b 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_authorized.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_authorized.1.json @@ -833,6 +833,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "131772552c01444cd81360818376a040b7c3b2b7b0a53550ee3edde216cec61b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_duplicate_panics.1.json b/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_duplicate_panics.1.json index 759309c..bd76f7f 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_duplicate_panics.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_bridge_credential_duplicate_panics.1.json @@ -831,6 +831,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "131772552c01444cd81360818376a040b7c3b2b7b0a53550ee3edde216cec61b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1639,7 +1729,7 @@ "data": { "vec": [ { - "string": "caught panic 'Attestation already bridged' from contract function 'Symbol(obj#289)'" + "string": "caught panic 'Attestation already bridged' from contract function 'Symbol(obj#317)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" diff --git a/contracts/stellar-id/test_snapshots/tests/test_credential_with_expiry.1.json b/contracts/stellar-id/test_snapshots/tests/test_credential_with_expiry.1.json index f76c6c8..cd1b92d 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_credential_with_expiry.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_credential_with_expiry.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_existing_credentials_remain_valid_after_schema_deactivation.1.json b/contracts/stellar-id/test_snapshots/tests/test_existing_credentials_remain_valid_after_schema_deactivation.1.json index 76dde9f..56857e4 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_existing_credentials_remain_valid_after_schema_deactivation.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_existing_credentials_remain_valid_after_schema_deactivation.1.json @@ -558,6 +558,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_get_subject_credentials.1.json b/contracts/stellar-id/test_snapshots/tests/test_get_subject_credentials.1.json index 92c10ff..16e9f07 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_get_subject_credentials.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_get_subject_credentials.1.json @@ -775,6 +775,186 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_has_credential_from_issuer.1.json b/contracts/stellar-id/test_snapshots/tests/test_has_credential_from_issuer.1.json index 9c8090d..0878d92 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_has_credential_from_issuer.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_has_credential_from_issuer.1.json @@ -535,6 +535,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_has_valid_commitment_no_commitment_submitted.1.json b/contracts/stellar-id/test_snapshots/tests/test_has_valid_commitment_no_commitment_submitted.1.json index 57e66f7..efca537 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_has_valid_commitment_no_commitment_submitted.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_has_valid_commitment_no_commitment_submitted.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expired.1.json b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expired.1.json index ca82e51..fd9f4ef 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expired.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expired.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expires_at_now_boundary.1.json b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expires_at_now_boundary.1.json index 5cc4870..a89b9c8 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expires_at_now_boundary.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_expires_at_now_boundary.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_true.1.json b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_true.1.json index bc5fec9..c01eb3a 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_true.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_has_valid_credential_true.1.json @@ -535,6 +535,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_identity_created_on_first_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_identity_created_on_first_credential.1.json index 32eadfa..0434224 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_identity_created_on_first_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_identity_created_on_first_credential.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_issue_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_issue_credential.1.json index b37a626..2fb9bab 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_issue_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_issue_credential.1.json @@ -535,6 +535,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_multiple_credentials_same_schema_one_expired_one_valid.1.json b/contracts/stellar-id/test_snapshots/tests/test_multiple_credentials_same_schema_one_expired_one_valid.1.json index 796660c..2c270cc 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_multiple_credentials_same_schema_one_expired_one_valid.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_multiple_credentials_same_schema_one_expired_one_valid.1.json @@ -664,6 +664,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "537639efffbb93b2f4c38dd0596b58a8816b45eb10b5a636f329d478888ec08b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 2 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_multisig_2_of_3_flow.1.json b/contracts/stellar-id/test_snapshots/tests/test_multisig_2_of_3_flow.1.json index bb5a74a..49d63c4 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_multisig_2_of_3_flow.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_multisig_2_of_3_flow.1.json @@ -997,6 +997,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_multisig_3_of_3_flow.1.json b/contracts/stellar-id/test_snapshots/tests/test_multisig_3_of_3_flow.1.json index ff74d0a..f4f7f94 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_multisig_3_of_3_flow.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_multisig_3_of_3_flow.1.json @@ -1021,6 +1021,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_multisig_threshold_triggers_issuance_and_identity_update.1.json b/contracts/stellar-id/test_snapshots/tests/test_multisig_threshold_triggers_issuance_and_identity_update.1.json index 2bf7efe..b64e172 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_multisig_threshold_triggers_issuance_and_identity_update.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_multisig_threshold_triggers_issuance_and_identity_update.1.json @@ -844,6 +844,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "131772552c01444cd81360818376a040b7c3b2b7b0a53550ee3edde216cec61b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_non_expiring_credential_indefinite.1.json b/contracts/stellar-id/test_snapshots/tests/test_non_expiring_credential_indefinite.1.json index a9dfad4..0c37f1e 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_non_expiring_credential_indefinite.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_non_expiring_credential_indefinite.1.json @@ -535,6 +535,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_non_issuer_cannot_revoke.1.json b/contracts/stellar-id/test_snapshots/tests/test_non_issuer_cannot_revoke.1.json index f4f369c..340ad32 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_non_issuer_cannot_revoke.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_non_issuer_cannot_revoke.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1099,7 +1189,7 @@ "data": { "vec": [ { - "string": "caught panic 'Only the original issuer can revoke' from contract function 'Symbol(obj#241)'" + "string": "caught panic 'Only the original issuer can revoke' from contract function 'Symbol(obj#269)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/contracts/stellar-id/test_snapshots/tests/test_random_address_cannot_revoke_other_issuers_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_random_address_cannot_revoke_other_issuers_credential.1.json index f4f369c..340ad32 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_random_address_cannot_revoke_other_issuers_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_random_address_cannot_revoke_other_issuers_credential.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1099,7 +1189,7 @@ "data": { "vec": [ { - "string": "caught panic 'Only the original issuer can revoke' from contract function 'Symbol(obj#241)'" + "string": "caught panic 'Only the original issuer can revoke' from contract function 'Symbol(obj#269)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential.1.json index d1012f9..3963e82 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential.1.json @@ -561,6 +561,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_multiple_times.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_multiple_times.1.json index 707d6d0..2eaadcd 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_multiple_times.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_multiple_times.1.json @@ -585,6 +585,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_expiring_panics.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_expiring_panics.1.json index ea72906..b0ff91e 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_expiring_panics.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_expiring_panics.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1102,7 +1192,7 @@ "data": { "vec": [ { - "string": "caught panic 'Cannot renew a non-expiring credential' from contract function 'Symbol(obj#239)'" + "string": "caught panic 'Cannot renew a non-expiring credential' from contract function 'Symbol(obj#267)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_issuer_rejected.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_issuer_rejected.1.json index ebb1bd2..bbe03c5 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_issuer_rejected.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_non_issuer_rejected.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1102,7 +1192,7 @@ "data": { "vec": [ { - "string": "caught panic 'Only the original issuer can renew' from contract function 'Symbol(obj#241)'" + "string": "caught panic 'Only the original issuer can renew' from contract function 'Symbol(obj#269)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_restores_validity.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_restores_validity.1.json index 476f1b5..5e3c65a 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_restores_validity.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_restores_validity.1.json @@ -561,6 +561,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_revoked_rejected.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_revoked_rejected.1.json index 952976b..af0a156 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_revoked_rejected.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_revoked_rejected.1.json @@ -556,6 +556,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "537639efffbb93b2f4c38dd0596b58a8816b45eb10b5a636f329d478888ec08b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 0 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1238,7 +1328,7 @@ "data": { "vec": [ { - "string": "caught panic 'Cannot renew a revoked credential' from contract function 'Symbol(obj#275)'" + "string": "caught panic 'Cannot renew a revoked credential' from contract function 'Symbol(obj#331)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" diff --git a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_zero_additional_seconds_panics.1.json b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_zero_additional_seconds_panics.1.json index 78efa5b..80d6b50 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_renew_credential_zero_additional_seconds_panics.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_renew_credential_zero_additional_seconds_panics.1.json @@ -534,6 +534,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { @@ -1102,7 +1192,7 @@ "data": { "vec": [ { - "string": "caught panic 'additional_seconds must be greater than zero' from contract function 'Symbol(obj#239)'" + "string": "caught panic 'additional_seconds must be greater than zero' from contract function 'Symbol(obj#267)'" }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" diff --git a/contracts/stellar-id/test_snapshots/tests/test_reputation_increases_with_credentials.1.json b/contracts/stellar-id/test_snapshots/tests/test_reputation_increases_with_credentials.1.json index e25e93d..22c24e4 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_reputation_increases_with_credentials.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_reputation_increases_with_credentials.1.json @@ -776,6 +776,186 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_revoke_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_revoke_credential.1.json index b68a802..b8f8c0c 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_revoke_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_revoke_credential.1.json @@ -558,6 +558,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "537639efffbb93b2f4c38dd0596b58a8816b45eb10b5a636f329d478888ec08b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 0 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_schema_accumulator_issue_and_revoke.1.json b/contracts/stellar-id/test_snapshots/tests/test_schema_accumulator_issue_and_revoke.1.json new file mode 100644 index 0000000..2e15e4d --- /dev/null +++ b/contracts/stellar-id/test_snapshots/tests/test_schema_accumulator_issue_and_revoke.1.json @@ -0,0 +1,1654 @@ +{ + "generators": { + "address": 4, + "nonce": 0 + }, + "auth": [ + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "function_name": "initialize", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "function_name": "register_issuer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "Test Issuer" + }, + { + "u32": 80 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "function_name": "register_schema", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "KYC Verified" + }, + { + "string": "Basic KYC verification credential" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "function_name": "issue_credential", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u32": 1 + }, + { + "u64": 3600 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [], + [], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "function_name": "revoke_credential", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "u64": 1 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 21, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Credential" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Credential" + }, + { + "u64": 1 + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "expires_at" + }, + "val": { + "u64": 3600 + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "issued_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "schema_id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "subject" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Identity" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Identity" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "created_at" + }, + "val": { + "u64": 0 + } + }, + { + "key": { + "symbol": "credential_count" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "reputation_score" + }, + "val": { + "u32": 8 + } + }, + { + "key": { + "symbol": "subject" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Issuer" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Issuer" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "address" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "credential_count" + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "Test Issuer" + } + }, + { + "key": { + "symbol": "trust_level" + }, + "val": { + "u32": 80 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Schema" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "Schema" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "description" + }, + "val": { + "string": "Basic KYC verification credential" + } + }, + { + "key": { + "symbol": "id" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "KYC Verified" + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "537639efffbb93b2f4c38dd0596b58a8816b45eb10b5a636f329d478888ec08b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 0 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SubjectCredentials" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SubjectCredentials" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "u64": 1 + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "CredentialCount" + } + ] + }, + "val": { + "u64": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SchemaCount" + } + ] + }, + "val": { + "u32": 1 + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "initialize" + } + ], + "data": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "initialize" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "register_issuer" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "Test Issuer" + }, + { + "u32": 80 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "issuer_registered" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "register_issuer" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "register_schema" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "KYC Verified" + }, + { + "string": "Basic KYC verification credential" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "schema_registered" + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "register_schema" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "get_schema_accumulator" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_schema_accumulator" + } + ], + "data": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 0 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "issue_credential" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u32": 1 + }, + { + "u64": 3600 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "credential_issued" + } + ], + "data": { + "vec": [ + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "issue_credential" + } + ], + "data": { + "u64": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "get_schema_accumulator" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_schema_accumulator" + } + ], + "data": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "generate_membership_witness" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u32": 1 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "generate_membership_witness" + } + ], + "data": { + "vec": [ + { + "bytes": "e38990d0c7fc009880a9c07c23842e886c6bbdc964ce6bdd5817ad357335ee6f" + }, + { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "verify_membership_witness" + } + ], + "data": { + "vec": [ + { + "u32": 1 + }, + { + "bytes": "e38990d0c7fc009880a9c07c23842e886c6bbdc964ce6bdd5817ad357335ee6f" + }, + { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "verify_membership_witness" + } + ], + "data": { + "bool": true + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "revoke_credential" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "u64": 1 + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "credential_revoked" + } + ], + "data": { + "vec": [ + { + "u64": 1 + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "revoke_credential" + } + ], + "data": "void" + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": null, + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_call" + }, + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000002" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 1 + } + } + } + }, + "failed_call": false + }, + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000002", + "type_": "diagnostic", + "body": { + "v0": { + "topics": [ + { + "symbol": "fn_return" + }, + { + "symbol": "get_schema_holder_count" + } + ], + "data": { + "u32": 0 + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/contracts/stellar-id/test_snapshots/tests/test_submit_and_verify_commitment_valid.1.json b/contracts/stellar-id/test_snapshots/tests/test_submit_and_verify_commitment_valid.1.json index 67f3fc7..f631859 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_submit_and_verify_commitment_valid.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_submit_and_verify_commitment_valid.1.json @@ -644,6 +644,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_expired_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_expired_credential.1.json index 1fbb34c..88f63f5 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_expired_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_expired_credential.1.json @@ -644,6 +644,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_revoked_credential.1.json b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_revoked_credential.1.json index 3c02964..8cd6b44 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_revoked_credential.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_revoked_credential.1.json @@ -666,6 +666,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "537639efffbb93b2f4c38dd0596b58a8816b45eb10b5a636f329d478888ec08b" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 0 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_tampered_commitment.1.json b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_tampered_commitment.1.json index 9010894..fce6183 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_tampered_commitment.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_tampered_commitment.1.json @@ -643,6 +643,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_wrong_blinding_factor.1.json b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_wrong_blinding_factor.1.json index b6df8ad..ff9862f 100644 --- a/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_wrong_blinding_factor.1.json +++ b/contracts/stellar-id/test_snapshots/tests/test_verify_commitment_wrong_blinding_factor.1.json @@ -643,6 +643,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "5f8d30e655a7ba0d7596bb3ddfb1d2d20390d23b1845000e1e118b3be1b3f040" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 2207ade..d989de3 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -59,7 +59,7 @@ SubIssuer (persistent storage, keyed by (parent, sub) tuple) ## Storage Strategy - `instance()` — used for global counters (CredentialCount, SchemaCount) and Admin -- `persistent()` — used for all user data (Issuers, Schemas, Credentials, Identities) +- `persistent()` — used for all user data (Issuers, Schemas, Credentials, Identities, Accumulators) Persistent storage entries have their own TTL and survive contract upgrades. Instance storage is tied to the contract instance. @@ -75,52 +75,25 @@ Persistent storage entries have their own TTL and survive contract upgrades. Ins | `register_schema` | Active issuer only | | `issue_credential` | Active registered issuer only | | `revoke_credential` | Original issuer only | -| All `get_*` / `has_*` | Anyone — no auth required | +| All `get_*` / `has_*` / `verify_*` | Anyone — no auth required | -## Events +--- -| Event | Emitted When | -|---|---| -| `issuer_registered` | New issuer approved | -| `issuer_deactivated` | Issuer disabled | -| `sub_issuer_authorized` | Sub-issuer delegation granted | -| `sub_issuer_revoked` | Sub-issuer delegation removed | -| `schema_registered` | New schema created | -| `credential_issued` | Credential issued to subject | -| `credential_revoked` | Credential revoked | +## Anonymous XOR Accumulator & Membership Proofs -## Reputation Score Formula +StellarID maintains a privacy-preserving cryptographic accumulator for each credential schema. +### Accumulator Formula +For a set of credential holders `{addr1, addr2, ..., addrN}`: ``` -reputation = min(credential_count × 10 + (trust_level / 10), 1000) +acc_0 = 0x00...00 (32 bytes of 0s) +acc_k = SHA-256( acc_{k-1} XOR SHA-256(subject_bytes) ) ``` -The score increases as more trusted issuers credential the subject. It caps at 1000 to prevent overflow. The score is re-computed on every new credential issuance. - -## Credential Commitment Scheme - -StellarID credentials are stored in plaintext. The commitment layer lets a subject prove they hold a valid credential without revealing which one. - -### How it works - -1. **Commit** — the subject picks a random 32-byte blinding factor `r` and computes: - ``` - commitment = SHA-256(credential_id_as_8_le_bytes || r) - ``` - They call `submit_commitment(subject, schema_id, commitment)`. Only the hash goes on-chain. - -2. **Prove** — when a verifier calls `verify_commitment(subject, schema_id, credential_id, r)`, the contract recomputes the hash and checks it matches the stored commitment. It also checks the credential is valid (not revoked, not expired, owned by subject). - -3. **Query** — `has_valid_commitment(subject, schema_id)` returns whether a commitment exists and the subject holds at least one live credential for that schema, without revealing which credential. - -### Security properties - -- **Hiding** — SHA-256 is a one-way function; the commitment reveals nothing about `credential_id` or `r`. -- **Binding** — it is computationally infeasible to find a different `(credential_id', r')` that produces the same commitment. -- **Privacy** — observers on-chain see only the hash, not the credential ID or issuer. +### Verification & Witness +- `generate_membership_witness(env, subject, schema_id)` returns `(subject_hash, accumulator)`. +- `verify_membership_witness(env, schema_id, subject_hash, snapshot)` verifies whether `subject_hash` matches an active credential holder at `snapshot`. +- `get_schema_holder_count(env, schema_id)` exposes total active holder count without revealing wallet addresses. ### Limitations - -- `has_valid_commitment` is a weaker guarantee than `verify_commitment`. It confirms a commitment exists and a live credential exists for the schema, but does not bind the two together. Full binding requires the subject to reveal the opening via `verify_commitment`. -- The commitment is per `(subject, schema_id)`. Submitting again overwrites the previous commitment. - +This scheme relies on snapshot consistency. Off-chain verifiers should request recent accumulator snapshots to verify membership. diff --git a/examples/gated-vault/test_snapshots/tests/test_deposit_accepts_kyc_wallet.1.json b/examples/gated-vault/test_snapshots/tests/test_deposit_accepts_kyc_wallet.1.json index e40d355..a9fdbeb 100644 --- a/examples/gated-vault/test_snapshots/tests/test_deposit_accepts_kyc_wallet.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_deposit_accepts_kyc_wallet.1.json @@ -581,6 +581,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_expired_kyc.1.json b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_expired_kyc.1.json index a889f27..af9f33c 100644 --- a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_expired_kyc.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_expired_kyc.1.json @@ -559,6 +559,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_revoked_kyc.1.json b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_revoked_kyc.1.json index 7839a81..749e316 100644 --- a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_revoked_kyc.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_revoked_kyc.1.json @@ -582,6 +582,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "b1a8ce5e73b6874c6469682ad88a72669f50a9ebf06a993ea42f67064a252d3e" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 0 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_wrong_schema_credential.1.json b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_wrong_schema_credential.1.json index b674750..e4f6b75 100644 --- a/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_wrong_schema_credential.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_deposit_rejects_wrong_schema_credential.1.json @@ -670,6 +670,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 2 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/examples/gated-vault/test_snapshots/tests/test_gated_vault_end_to_end.1.json b/examples/gated-vault/test_snapshots/tests/test_gated_vault_end_to_end.1.json index 662ac0b..b05166c 100644 --- a/examples/gated-vault/test_snapshots/tests/test_gated_vault_end_to_end.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_gated_vault_end_to_end.1.json @@ -604,6 +604,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": { diff --git a/examples/gated-vault/test_snapshots/tests/test_withdraw_with_valid_kyc.1.json b/examples/gated-vault/test_snapshots/tests/test_withdraw_with_valid_kyc.1.json index c8e4c19..de3e5c2 100644 --- a/examples/gated-vault/test_snapshots/tests/test_withdraw_with_valid_kyc.1.json +++ b/examples/gated-vault/test_snapshots/tests/test_withdraw_with_valid_kyc.1.json @@ -603,6 +603,96 @@ 4095 ] ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaAccumulator" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "bytes": "8a35d9ca92a48eaade6f53a64985e9e2afeb74dcf8acb4c3721e0dc7e4294b25" + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "vec": [ + { + "symbol": "SchemaHolderCount" + }, + { + "u32": 1 + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], [ { "contract_data": {